Các bác ơi giúp em với, em thì chưa học VBA nhưng copy 2 đoạn code để dùng.
Dùng riêng rẽ ok nhưng em muốn khi chạy Sub thứ nhất thì dừng luôn, không chạy Sub thứ 2 nữa (chạy excel bị lỗi đơ)
Bác nào giúp em sửa thêm với ạ.
Em xin cám ơn!!!
Sub Thunhat()
'Update 20130829
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = ActiveSheet.Range("D:E")
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
Dic(arr(i, 1)) = Dic(arr(i, 1)) + arr(i, 2)
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub
-----------------------------
Sub Thuhai()
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Intersect(Target, [D
]) Is Nothing Then Exit Sub
For Each Cll In Intersect(Target, [D
])
If Cll <> "" Then
If Cll <> Cll.ID Then
Cll.Offset(, 1) = 1
Cll.ID = Cll
End If
Else
Cll.Offset(, 1).ClearContents
Cll.ID = ""
End If
Next
End Sub
Dùng riêng rẽ ok nhưng em muốn khi chạy Sub thứ nhất thì dừng luôn, không chạy Sub thứ 2 nữa (chạy excel bị lỗi đơ)
Bác nào giúp em sửa thêm với ạ.
Em xin cám ơn!!!
Sub Thunhat()
'Update 20130829
Dim WorkRng As Range
Dim Dic As Variant
Dim arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = ActiveSheet.Range("D:E")
Set Dic = CreateObject("Scripting.Dictionary")
arr = WorkRng.Value
For i = 1 To UBound(arr, 1)
Dic(arr(i, 1)) = Dic(arr(i, 1)) + arr(i, 2)
Next
Application.ScreenUpdating = False
WorkRng.ClearContents
WorkRng.Range("A1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.keys)
WorkRng.Range("B1").Resize(Dic.Count, 1) = Application.WorksheetFunction.Transpose(Dic.items)
Application.ScreenUpdating = True
End Sub
-----------------------------
Sub Thuhai()
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cll As Range
If Intersect(Target, [D

For Each Cll In Intersect(Target, [D

If Cll <> "" Then
If Cll <> Cll.ID Then
Cll.Offset(, 1) = 1
Cll.ID = Cll
End If
Else
Cll.Offset(, 1).ClearContents
Cll.ID = ""
End If
Next
End Sub
File đính kèm
Lần chỉnh sửa cuối: