Tôi có 1 Data Range. Tôi muốn khi có các thay đổi với Data Range này như: các thay đổi về giá trị, thêm/bớt dòng, cột,.. --> sẽ run 1 macro nào đó thì phải Code thế nào?
>Bạn có thể cụ thể hơn một chút không?Mình cũng hiểu phải sử dụng Worksheet_selectionChange nhưng không biết phải Code thế nào. Mới bập bẹ nên có thể tên chủ đề bài post của mình cũng không đúng nghĩa lắm nhưng không biết diễn đạt ra sao.
>Bạn có thể cụ thể hơn một chút không?Mình cũng hiểu phải sử dụng Worksheet_selectionChange nhưng không biết phải Code thế nào. Mới bập bẹ nên có thể tên chủ đề bài post của mình cũng không đúng nghĩa lắm nhưng không biết diễn đạt ra sao.
Giả sử vùng bạn cần set thay đổi là A1:C15
Vào VBA (Alt+F11) double click vào sheet cần viết code:
PHP:
Private sub Workseet_SelectionChange()
Dim MyR, My C as Interger
MyR=selection.Row
MyC=Selection.Column
If (MyR>=1 and MyR<=15) and (myC>=1 and MyC<=3) then
Call MacroCanGoi
Else
Exit sub
End IF
End Sub
Giả sử vùng bạn cần set thay đổi là A1:C15
Vào VBA (Alt+F11) double click vào sheet cần viết code:
PHP:
Private sub Workseet_SelectionChange()
Dim MyR, My C as Interger
MyR=selection.Row
MyC=Selection.Column
If (MyR>=1 and MyR<=15) and (myC>=1 and MyC<=3) then
Call MacroCanGoi
Else
Exit sub
End IF
End Sub
Cảm ơn bạn, mình đã thử theo cách của cậu nhưng nó thông báo lỗi Complier error: user-defined type not defined
và highlight ở ngay dòng đầu tiên Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Mình gửi file attach để bạn xem giúp mình nhé. Đối với file này, mình muốn giải được 2 yêu cầu sau:
1. Khi thay đổi dữ liệu trong range("data") như: thay đổi giá trị, thêm bớt dòng, cột -> Run Macro Danhgia_click()
2. Nếu có thể, xem giúp mình luôn
Khi nhập số đối tượng đánh giá: Cell C4
--> Kiểm tra số đối tượng hiện tại theo Range("doituong").
Nếu số đối tượng hiện có lớn hơn giá trị nhập tại C4 (vd lớn hơn là 2)--> mở rộng range "Doituong" = add thêm số cột = số đối tượng chênh lệch (2) vào trước cột cuối cùng hoặc sau cột đầu tiên của Range "Doituong" để đảm bảo các giá trị nhập vào thuộc các cột mới thêm vào vẫn thuộc Range "Data" và "Doi tuong" có sẵn. Cột mới được copy vào sẽ có Format + Fomular giống như cột copy (cột đối tượng đánh giá). Riêng giá trị đánh giá không copy.
Tương tự như vậy đối với trường hợp số đối tượng nhập cại C4 < số đối tượng đánh giá hiện tại (range"doituong") --> xóa 1 số cột = số cột chênh lệch.