Sub STT()
Range("G4:G100").Select
Selection = "=IF(RC[-1]=0,"""",COUNTIF(R4C6:RC[-1],"">0""))"
Selection = Selection.Value
End Sub
Sub STT()
[G5:G1000] = "=IF(RC[-1]=0,"""",COUNTIF(R4C6:RC[-1],"">0""))"
[G5:G1000] = [G5:G1000].Value
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call STT
End Sub
Tự động nghĩa là sao? Bạn nói rõ hơn chút đi ---> Khi bạn làm gì thì STT sẽ điền?Bạn ơi có thể cho nó chạy tự động mà không cần ấn nút không
Em có một ý tưởng nhỏ trong file đính kèm, xin nhờ cả nhà giúp cho ạ
Sub STT_Thieu()
Dim data(), i As Long
data = Range([a2], [A65536].End(3)).Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(data)
If Not .exists(data(i, 1)) Then .Add data(i, 1), ""
Next
For i = 1 To [A65536].End(3).Value
If Not .exists(i) Then
Cells(65536, 5).End(3).Offset(1) = i
End If
Next
End With
End Sub
Code này chưa chính xác nha.PHP:Sub STT_Thieu() Dim data(), i As Long data = Range([a2], [A65536].End(3)).Value With CreateObject("scripting.dictionary") For i = 1 To UBound(data) If Not .exists(data(i, 1)) Then .Add data(i, 1), "" Next For i = 1 To [A65536].End(3).Value If Not .exists(i) Then Cells(65536, 5).End(3).Offset(1) = i End If Next End With End Sub
Sub Main()
Dim rCrit As Range, rData As Range, rOrgn As Range, Target As Range
Set rData = Range("A1:A1000")
Set rOrgn = Range("C1:C1000")
Set rCrit = Range("IV1:IV2")
rCrit(2, 1).Value = "=COUNTIF(" & rData.Offset(1).Address & "," & rOrgn(2, 1).Address(0, 1) & ")=0"
Set Target = Range("E1")
rOrgn.AdvancedFilter 2, rCrit, Target
Target(1, 1).Value = "So thieu"
rCrit.Clear
End Sub
Code này chưa chính xác nha.
Xóa cell A18 (số 19) nhưng code cũng không tìm ra được số 19 bị thiếu
Cảm ơn bác đã quan tâm vấn đề của em, bác đã giúp em rất nhiều, kính chúc bác mạnh khoẻ và thành đạtPHP:Sub STT_Thieu() Dim data(), i As Long data = Range([a2], [A65536].End(3)).Value With CreateObject("scripting.dictionary") For i = 1 To UBound(data) If Not .exists(data(i, 1)) Then .Add data(i, 1), "" Next For i = 1 To [A65536].End(3).Value If Not .exists(i) Then Cells(65536, 5).End(3).Offset(1) = i End If Next End With End Sub
Cam ơn bác đã quan tâm, kkhi em chạy có phát sinh lỗi này ạCode này chưa chính xác nha.
Xóa cell A18 (số 19) nhưng code cũng không tìm ra được số 19 bị thiếu
Tôi nghĩ dùng Advanced Filter cũng được:
Mã:Sub Main() Dim rCrit As Range, rData As Range, rOrgn As Range, Target As Range Set rData = Range("A1:A1000") Set rOrgn = Range("C1:C1000") Set rCrit = Range("IV1:IV2") rCrit(2, 1).Value = "=COUNTIF(" & rData.Offset(1).Address & "," & rOrgn(2, 1).Address(0, 1) & ")=0" Set Target = Range("E1") rOrgn.AdvancedFilter 2, rCrit, Target Target(1, 1).Value = "So thieu" rCrit.Clear End Sub
Bạn xem file. Lưu ý là mình chỉ dựa trên cột A thôi nhá.Kính gửi bác Quang Hai
Khi em bổ xung thêm số liệu có phát sinh thêm vấn đề nữa, xin bác vui lòng xem file em gửi kèm
Xin cảm ơn bác nhiều
Sub STT_Thieu()
Dim data(), i As Long
data = Range([A2], [A65536].End(3)).Value
[E2:E10000].ClearContents
With CreateObject("scripting.dictionary")
For i = 1 To UBound(data)
If Not .exists(data(i, 1)) Then .Add data(i, 1), ""
Next
For i = [A2].Value To [A65536].End(3).Value
If Not .exists(i) Then
Cells(65536, 5).End(3).Offset(1) = i
End If
Next
End With
End Sub
Bạn xem file. Lưu ý là mình chỉ dựa trên cột A thôi nhá.
PHP:Sub STT_Thieu() Dim data(), i As Long data = Range([A2], [A65536].End(3)).Value [E2:E10000].ClearContents With CreateObject("scripting.dictionary") For i = 1 To UBound(data) If Not .exists(data(i, 1)) Then .Add data(i, 1), "" Next For i = [A2].Value To [A65536].End(3).Value If Not .exists(i) Then Cells(65536, 5).End(3).Offset(1) = i End If Next End With End Sub
Kinh gui Bac Quang HaiCảm ơn bác đã quan tâm vấn đề của em, bác đã giúp em rất nhiều, kính chúc bác mạnh khoẻ và thành đạt
Kinh gui Bac Quang Hai
EM bị phát sinh thêm một vấn đề trong bảng dữ liệu như sau
Gia sử trong cột A có 02 bản ghi trở lên có số giống nhau liệu có thể tạo một Macro để lọc các bản ghi đó rồi coppy ra cho khác được không ạ
Trân trọng cảm ơn sự giúp đỡ của Bác