tamhoncuada10313
Thành viên thường trực
- Tham gia
- 7/4/08
- Bài viết
- 221
- Được thích
- 65
Kéo fill xuống=IF(AND(C4<>"",MONTH(C4)=thang*1),MAX($E$3:E3)+1,"")
Nói chính xác hơn là NGÀY THÁNG NĂM trong file đã được gõ tầm bậy tầm bạ hết trơn, cái thì dạng DATE, còn cái thì dạng TEXTTui ko rành lắm về công thức nhưng tui thấy bạn nhập ngày tháng ko theo nguyên tắc nào hết thì làm sao lọc được. Bạn thử nhập tất cả cùng 1 loại xem, chẳng hạn như ngày ngày, tháng tháng, năm năm có lẽ sế được đấy.
Hỏng hiểu! Trong file bạn đang dùng công thức cơ mà, sao lại có code VBA ở đây nữa?Xem giùm em lệnh viết như thế này đúng chưa
Month(nv.Offset(0, 1)) = Sheet4.cbthang.Value
-cbthang : tên của Combo Box chứa danh sách các tháng.
-nv là tên biến
-mục đích câu lệnh này là dịch sang phải 1 cột (cột đc chỉ đến là cột ngày tháng năm), sau đó sẽ lấy giá trị tháng của cột được dịch đến so sánh với giá trị trong combo box.
Mong các bác giúp!
Month(nv.Offset(0, 1)) = Sheet4.cbthang.Value
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NS As Range, Clls As Range
Dim k As Integer
If Target.Address = "$C$4" Then
[A6:D1000].ClearContents
Set NS = Sheet1.Range("C4:C" & Sheet1.[C65536].End(xlUp).Row)
k = 6
For Each Clls In NS
If Month(Clls) = Sheet2.[C4] And Clls <> "" Then
Sheet2.Cells(k, 1).Value = k - 5
Sheet2.Cells(k, 2).Resize(1, 3).Value = Clls.Offset(, -1).Resize(1, 3).Value
k = k + 1
End If
Next Clls
End If
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim DS As Range, NS As Range, Loc As Range
Dim Luu As Variant
Application.ScreenUpdating = False
If Target.Address = "$C$4" Then
[A6:D1000].ClearContents
Set DS = Sheet1.[A3].CurrentRegion
Set NS = Sheet1.Range("C4:C" & Sheet1.[B65536].End(xlUp).Row)
Luu = DS.Value
NS.NumberFormat = "mmm"
DS.Sort Key1:=Sheet1.[C4], Order1:=1, Header:=1, _
OrderCustom:=4, Orientation:=1, DataOption1:=xlSortNormal
DS.AutoFilter Field:=3, Criteria1:=Sheet1.[J3]
DS.SpecialCells(xlCellTypeVisible).Copy: [A5].PasteSpecial xlPasteValues
[A6] = "1": [A7] = "2"
[A6:A7].AutoFill Destination:=Range("A6:A" & [B65536].End(xlUp).Row)
Sheet1.AutoFilterMode = False
NS.NumberFormat = "dd/mm/yyyy"
DS.Value = Luu
Target.Select
End If
End Sub