Hỏi về đặt sự kiện khi Range thay đổi

  • Thread starter Thread starter ti8pro
  • Ngày gửi Ngày gửi
Liên hệ QC

ti8pro

Thành viên mới
Tham gia
2/4/08
Bài viết
21
Được thích
2
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?

Mong các bạn chỉ giúp

Thanks
 
Nếu Data Range là vùng trên 1 sheet thì có thể dùng sự kiện
Mã:
Worksheet_SelectionChange(ByVal Target As Range)
.
Còn nếu là vùng nằm trên nhiều sheet thì ... chưa nghĩ ra.
 
Upvote 0
Nếu Data Range là vùng trên 1 sheet thì có thể dùng sự kiện
Mã:
Worksheet_SelectionChange(ByVal Target As Range)
.
Còn nếu là vùng nằm trên nhiều sheet thì ... chưa nghĩ ra.

>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.

Thanks in advanced
 
Upvote 0
>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.

Thanks in advanced

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
 
Lần chỉnh sửa cuối:
Upvote 0
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.



Speacial thanks

Xin lỗi, quên attacted file
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
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()

thì thế này, vào tab sheet "Danh Gia" -> nháy phải -> View CODE -> copy CODe sau:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("data"), Target) Is Nothing Then
        Call Danhgia_Click
    End If
End Sub


phần 2/ : không rõ ý bạn, nên chưa giúp được, sorry
.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom