Làm sao hàm JoinUnique của Thầy NDU sử dụng được khi AutoFilter

Liên hệ QC

ST-Lu!

Love Wingchun
Tham gia
19/8/08
Bài viết
730
Được thích
546
Nghề nghiệp
Xích lô một thời
PHP:
Function JointUnique(Range As Range, Optional Sep As String = " ") As String
  Dim Dic, Clls As Range
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For Each Clls In Range
      If Clls <> "" Then .Add Clls.Value, ""
    Next Clls
   JointUnique = Join(.Keys, Sep)
  End With
End Function

Làm sao để sử dụng được hàm trên sau khi Range đã được AutoFilter?
Ý của em là Range.visible
 
Mình đưa ví dụ của bác SA_DQ mà mình rất thích, bạn tham khảo nhé

PHP:
Sub CopyAFilter()
    Dim Rng As Range    
    With Sheet3
        If Not .FilterMode Then
            MsgBox "AutoFilter?":               Exit Sub
        End If
        Set Rng = .AutoFilter.Range.Offset(1, 0).Resize(.AutoFilter.Range.Rows. _
                   Count - 1).SpecialCells(xlCellTypeVisible)
         
        Rng.Copy Destination:=Sheet4.Range("A1")
    End With
End Sub
Bạn thấy bác ấy sử lý Range có hay không ? Ban cắt và đưa Rng vào trong hàm của Ndu là OK, nhớ cám ơn bác ấy nhé.
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Function JointUnique(Range As Range, Optional Sep As String = " ") As String
  Dim Dic, Clls As Range
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For Each Clls In Range
      If Clls <> "" Then .Add Clls.Value, ""
    Next Clls
   JointUnique = Join(.Keys, Sep)
  End With
End Function
Làm sao để sử dụng được hàm trên sau khi Range đã được AutoFilter?
Ý của em là Range.visible
Cái này đơn giản mà bạn!
1 cell được gọi là không ẩn khi dòng và cột của nó không ẩn, đúng không?
Thế thì thêm điều kiện này vào
PHP:
Function JointUnique(Range As Range, Optional Sep As String = " ") As String
  Dim Dic, Clls As Range
  Application.Volatile
  On Error Resume Next
  With CreateObject("Scripting.Dictionary")
    For Each Clls In Range
      If Clls <> "" And _
         Clls.Rows.Hidden = False And _
         Clls.Columns.Hidden = False Then .Add Clls.Value, ""
    Next Clls
   JointUnique = Join(.Keys, Sep)
  End With
End Function
 
Upvote 0
Web KT
Back
Top Bottom