TỰ HỌC VBA
Thành viên mới
- Tham gia
- 18/3/22
- Bài viết
- 2
- Được thích
- 0
Mới học VBA dùng tạm code saumình có dữ liệu muốn tìm dữ liệu trùng nhau như hàm countfis với 2 điều kiện nhưng muốn tìm đk 1 ở nhiều cột ạ như ví dụ có file exl đua lên ạ cảm ơn nhiều
Sub ABC()
Dim aData(), aDanhSach(), res(), ngay As Date
Dim bn$, srDS&, srDa&, sCol&, i&, r&, j&
With Sheets("Sheet1")
ngay = .Range("C1").Value
aDanhSach = .Range("A3", .Range("A" & Rows.Count).End(xlUp)).Value
aData = .Range("D3", .Range("H" & Rows.Count).End(xlUp)).Value
End With
srDS = UBound(aDanhSach)
srDa = UBound(aData): sCol = UBound(aData, 2)
ReDim res(1 To srDS, 1 To 1)
For i = 1 To srDS
bn = aDanhSach(i, 1)
For r = 1 To srDa
If aData(r, 1) = ngay Then
For j = 2 To sCol
If aData(r, j) = bn Then res(i, 1) = res(i, 1) + 1
Next j
End If
Next r
Next i
Sheets("Sheet1").Range("B3").Resize(srDS) = res
End Sub
Thầy tài thật ấy.Em coi qua mà không hiểu họ muốn gì luôn ấy. Tới tận khi chạy code mới hình dung ra là bạn ấy muốn gì. Chắc tại nảy số chậm. hihiMới học VBA dùng tạm code sau
Thêm 1 cách khác tham khảo thử.mình có dữ liệu muốn tìm dữ liệu trùng nhau như hàm countfis với 2 điều kiện nhưng muốn tìm đk 1 ở nhiều cột ạ như ví dụ có file exl đua lên ạ cảm ơn nhiều
Sub XYZ()
Dim Rng As Range, DK
Dim WF As Object, iRow&
Set WF = Application.WorksheetFunction
With Sheet1
DK = .Range("C1").Value
iRow = .Range("D" & Rows.Count).End(3).Row
For Each Rng In .Range("A3:A" & iRow)
If Rng.Offset(, 3).Value = DK Then
Rng.Offset(, 1).Value = WF.CountIf(Rng.Offset(, 4).Resize(, 4), Rng.Value)
End If
Next
End With
End Sub
sr ạ nghĩa như này ạ viet hàm B3=COUNTIFS($D$3:$D$11;C1;$E3$:E$11;A3)+COUNTIFS($D3:$D11;C1;F3:F11;A3)+ countfis thế này thì dài quá ạ lên muốn viết vba…..sẽ là ngày 1/1/2020 BN1 xuất hiện 4 lần ạCố gắng đọc hiểu nhưng vẫn không hiểu bạn muốn gì á