Không Advance Filter được (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Cá ngừ F1

( ͡° ͜ʖ ͡°)
Thành viên BQT
Moderator
Tham gia
1/1/08
Bài viết
2,579
Được thích
3,723
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Quan hệ.. và quan hệ..
E có bảng dữ liệu theo file đính kèm
Có sử dụng advance Filter
Kết hợp sử dụng combobox với code:
Mã:
Private Sub ComboBox1_DropButtonClick()
    Dim arr
    arr = Sheets("sheet1").Range("C2:C8")
    If IsArray(arr) Then ComboBox1.List() = arr
    Sheets("sheet1").Range("F2").Value = ComboBox1.Text
End Sub
Có dùng marco để ghi lại Advance filter, nhưg không ra kết quả
E có chỉ rõ trong file, mong mng giúp đỡ
 

File đính kèm

E có bảng dữ liệu theo file đính kèm
Có sử dụng advance Filter
Kết hợp sử dụng combobox với code:
Mã:
Private Sub ComboBox1_DropButtonClick()
    Dim arr
    arr = Sheets("sheet1").Range("C2:C8")
    If IsArray(arr) Then ComboBox1.List() = arr
    Sheets("sheet1").Range("F2").Value = ComboBox1.Text
End Sub
Có dùng marco để ghi lại Advance filter, nhưg không ra kết quả
E có chỉ rõ trong file, mong mng giúp đỡ

Chẳng hiểu trên máy của bạn thế nào chứ máy của mình vẫn ra kết quả bình thường mà.
 
Upvote 0
Chẳng hiểu trên máy của bạn thế nào chứ máy của mình vẫn ra kết quả bình thường mà.
Ở combobox nếu e chọn 2014 thì lọc bình thường

Tuy nhiên,nếu chọn giá trị khác (dạng mm/yy) thì không ra được kết quả, có phải do định dạng ở ô F2 hay mảng C2:C8 không đồng nhất ???
 
Upvote 0
Ở combobox nếu e chọn 2014 thì lọc bình thường

Tuy nhiên,nếu chọn giá trị khác (dạng mm/yy) thì không ra được kết quả, có phải do định dạng ở ô F2 hay mảng C2:C8 không đồng nhất ???

Mình chọn bất kỳ cái gì trong Combobox và nhấn nút lọc --> vẫn ra kết quả bình thường.
 
Upvote 0
Chẳng hiểu trên máy của bạn thế nào chứ máy của mình vẫn ra kết quả bình thường mà.
E nghĩ là ko thể do máy được ạh, e vừa có test thử trên máy khác thì cũng ko ra kết quả
Mình chọn bất kỳ cái gì trong Combobox và nhấn nút lọc --> vẫn ra kết quả bình thường.
Thật lạ quá ạh
e dùng office 2010
Có anh/chị nào ko AF được không ạh ?
 
Lần chỉnh sửa cuối:
Upvote 0
Có ai không AF được giống e không ạh?
 
Upvote 0
E có bảng dữ liệu theo file đính kèm
Có sử dụng advance Filter
Kết hợp sử dụng combobox với code:
Mã:
Private Sub ComboBox1_DropButtonClick()
    Dim arr
    arr = Sheets("sheet1").Range("C2:C8")
    If IsArray(arr) Then ComboBox1.List() = arr
    Sheets("sheet1").Range("F2").Value = ComboBox1.Text
End Sub
Có dùng marco để ghi lại Advance filter, nhưg không ra kết quả
E có chỉ rõ trong file, mong mng giúp đỡ

Mình thử trên 2013 thấy bình thường, có điều phải format lại các giá trị trong đó (ko hiểu cột ngày tại sao lại để định dạng text --=0)
Link MediaFire: hoi AF (tested)
 
Lần chỉnh sửa cuối:
Upvote 0
Mình thử trên 2013 thấy bình thường, có điều phải format lại các giá trị trong đó (ko hiểu cột ngày tại sao lại để định dạng text --=0)
Dạ..dữ liệu gốc down xuống dưới dạng mm/yy -> e định dang sang mmm-yyyy thì combobox ko ra dạng mmm-yyyy mà nó ra dạng dd/mm/yyyy ko chính xác tí nào?
 
Upvote 0
Cái thằng Advance này cũng rắc rối lắm đó nha. Muốn khoẻ thì dùng mảng lọc sẽ không kén định dạng nữa
 
Upvote 0
Dạ..a có thể chi tiết hơn chút về MẢNG LỌC ko ạh ???

Cho code này vào 1 module
PHP:
Sub loc()
Dim nguon(), Kq(), I, J, K
With Sheet1
   nguon = .Range(.[A2], .[A65536].End(3)).Resize(, 3).Value
   ReDim Kq(1 To UBound(nguon), 1 To 3)
   For I = 1 To UBound(nguon)
      If nguon(I, 3) = .ComboBox1.Value Then
         K = K + 1
         For J = 1 To 3
            Kq(K, J) = nguon(I, J)
         Next
      End If
   Next
   .[I2:K1000].ClearContents
   .[I2].Resize(K, 3) = Kq
End With
End Sub
Thêm 2 code này vào sheet1
PHP:
Private Sub ComboBox1_Change()
loc
End Sub
'.................................
Private Sub ComboBox1_DropButtonClick()
With Sheet1
   .ComboBox1.List() = .Range(.[C2], .[C65536].End(3)).Value
End With
End Sub
 
Upvote 0
Cho code này vào 1 module
PHP:
Sub loc()
Dim nguon(), Kq(), I, J, K
With Sheet1
   nguon = .Range(.[A2], .[A65536].End(3)).Resize(, 3).Value
   ReDim Kq(1 To UBound(nguon), 1 To 3)
   For I = 1 To UBound(nguon)
      If nguon(I, 3) = .ComboBox1.Value Then
         K = K + 1
         For J = 1 To 3
            Kq(K, J) = nguon(I, J)
         Next
      End If
   Next
   .[I2:K1000].ClearContents
   .[I2].Resize(K, 3) = Kq
End With
End Sub
Thêm 2 code này vào sheet1
PHP:
Private Sub ComboBox1_Change()
loc
End Sub
'.................................
Private Sub ComboBox1_DropButtonClick()
With Sheet1
   .ComboBox1.List() = .Range(.[C2], .[C65536].End(3)).Value
End With
End Sub
Có cách nào mà vẫn sử dụng đc AF ko ạh ???
 
Upvote 0
Có cách nào mà vẫn sử dụng đc AF ko ạh ???
Sửa code lại 1 chút kết hợp với custom format nhấn Ctrl +1 chọn custom để xem format, nói chung tại cách đánh ngày của bạn có thể làm khó bạn. Với code của anh QuangHai chúng ta có thể sử dụng nguồn nạp và nhả kết quả không cần thêm biến

[GPECODE=vb]
Sub loc1()
Dim nguon(), I, J, K
With Sheet1
nguon = .Range(.[A2], .[A65536].End(3)).Resize(, 3).Value
For I = 1 To UBound(nguon)
If nguon(I, 3) = .ComboBox1.Value Then
K = K + 1
For J = 1 To 3
nguon(K, J) = nguon(I, J)
Next
End If
Next
.[I2:K1000].ClearContents
.[I2].Resize(K, 3) = nguon
End With
End Sub
[/GPECODE]
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Sửa code lại 1 chút kết hợp với custom format nhấn Ctrl +1 chọn custom để xem format, nói chung tại cách đánh ngày của bạn có thể làm khó bạn. Với code của anh QuangHai chúng ta có thể sử dụng nguồn nạp và nhả kết quả không cần thêm biến

[GPECODE=vb]
Sub loc1()
Dim nguon(), I, J, K
With Sheet1
nguon = .Range(.[A2], .[A65536].End(3)).Resize(, 3).Value
For I = 1 To UBound(nguon)
If nguon(I, 3) = .ComboBox1.Value Then
K = K + 1
For J = 1 To 3
nguon(K, J) = nguon(I, J)
Next
End If
Next
.[I2:K1000].ClearContents
.[I2].Resize(K, 3) = nguon
End With
End Sub
[/GPECODE]
Cách này không phức tạp nhưng mà rất mới đối với mình. Đọc code mà thấy thích thú. Hay!
 
Upvote 0
Sửa code lại 1 chút kết hợp với custom format nhấn Ctrl +1 chọn custom để xem format, nói chung tại cách đánh ngày của bạn có thể làm khó bạn. Với code của anh QuangHai chúng ta có thể sử dụng nguồn nạp và nhả kết quả không cần thêm biến

[GPECODE=vb]
Sub loc1()
Dim nguon(), I, J, K
With Sheet1
nguon = .Range(.[A2], .[A65536].End(3)).Resize(, 3).Value
For I = 1 To UBound(nguon)
If nguon(I, 3) = .ComboBox1.Value Then
K = K + 1
For J = 1 To 3
nguon(K, J) = nguon(I, J)
Next
End If
Next
.[I2:K1000].ClearContents
.[I2].Resize(K, 3) = nguon
End With
End Sub
[/GPECODE]
Dạ... Dữ liệu gốc nó làm khó e..trước ngày nó để dạng text mm/yyyy (ko thay đổi được) thì AF ko sao...xong nó đổi thành mm/yy làm e loay hoay tìm hiểu mãi ko ra nguyên nhân...
 
Upvote 0
E có bảng dữ liệu theo file đính kèm
Có sử dụng advance Filter
Kết hợp sử dụng combobox với code:
Mã:
Private Sub ComboBox1_DropButtonClick()
    Dim arr
    arr = Sheets("sheet1").Range("C2:C8")
    If IsArray(arr) Then ComboBox1.List() = arr
    Sheets("sheet1").Range("F2").Value = ComboBox1.Text
End Sub
Có dùng marco để ghi lại Advance filter, nhưg không ra kết quả
E có chỉ rõ trong file, mong mng giúp đỡ

Bạn dùng code thế này sẽ chắc ăn "trúng"
Mã:
Private Sub ComboBox1_Click()
  With Sheets("sheet1")
    .Range("IV3").Value = "'" & ComboBox1.Text
    .Range("IV2").Value = "=RC3=R3C256"
    .Range("A1:C8").AdvancedFilter 2, .Range("IV1:IV2"), .Range("I1:K1")
    .Range("IV1:IV3").Clear
  End With
End Sub
Private Sub ComboBox1_DropButtonClick()
  Dim arr
  With Sheets("sheet1")
    arr = .Range("C2:C8")
    If IsArray(arr) Then .ComboBox1.List() = arr
  End With
End Sub
 
Upvote 0
Bạn dùng code thế này sẽ chắc ăn "trúng"
Mã:
Private Sub ComboBox1_Click()
  With Sheets("sheet1")
    .Range("IV3").Value = "'" & ComboBox1.Text
    .Range("IV2").Value = "=RC3=R3C256"
    .Range("A1:C8").AdvancedFilter 2, .Range("IV1:IV2"), .Range("I1:K1")
    .Range("IV1:IV3").Clear
  End With
End Sub
Private Sub ComboBox1_DropButtonClick()
  Dim arr
  With Sheets("sheet1")
    arr = .Range("C2:C8")
    If IsArray(arr) Then .ComboBox1.List() = arr
  End With
End Sub
Quá nhanh và nuột ạh....
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom