cái này theo mình nghĩ không được.Thông thường thì Autofillter được dùng để lọc dữ liệu theo hàng dọc. Nếu em muốn tạo autofillter cho hàng ngang thì làm sao ah???
Đính kèm theo file minh hoạ
Thông thường thì Autofillter được dùng để lọc dữ liệu theo hàng dọc. Nếu em muốn tạo autofillter cho hàng ngang thì làm sao ah??? Đính kèm theo file minh hoạ
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
If Target.Address = "$D$2" Then
Application.ScreenUpdating = False
For i = 1 To 31
If Sheet1.Cells(4, (i * 3 - 2) + 5) = Target Then
Sheet1.Columns((i * 3 - 2) + 5).Hidden = False
Sheet1.Columns((i * 3 - 2) + 6).Hidden = False
Sheet1.Columns((i * 3 - 2) + 7).Hidden = False
Else
Sheet1.Columns((i * 3 - 2) + 5).Hidden = True
Sheet1.Columns((i * 3 - 2) + 6).Hidden = True
Sheet1.Columns((i * 3 - 2) + 7).Hidden = True
End If
Next
End If
Application.ScreenUpdating = True
End Sub
Option Explicit
Sub loc()
Dim i, ngay As Integer
ngay = InputBox("Nhap ngay can xem: 1, 2, 3...:")
Application.ScreenUpdating = False
For i = 1 To 31
If Sheet1.Cells(1, (i * 4 - 3) + 3) = ngay Then
Sheet1.Columns((i * 4 - 3) + 3).Resize(, 4).Hidden = False
Else
Sheet1.Columns((i * 4 - 3) + 3).Resize(, 4).Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c1]) Is Nothing Then
If Target.Value = "" Then
Cells.EntireColumn.Hidden = False
Exit Sub
End If
Dim Rng As Range, sRng As Range, Clls As Range
Dim dFormat As String
dFormat = [D2].NumberFormat
Set Rng = Range([D2], [iV2].End(xlToLeft))
Rng.NumberFormat = "m/d/yyyy"
' MsgBox [c1].NumberFormat '
Set sRng = Rng.Find(Format([c1].Value, "m/d/yyyy"), , , xlWhole)
If Not sRng Is Nothing Then
Columns("D:DG").Hidden = True
sRng.Resize(, 4).EntireColumn.Hidden = False
Else
MsgBox "Nothing"
End If
Rng.NumberFormat = dFormat
End If
End Sub