sử dụng Selection change như thế nào

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

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
Em muốn tận dụng sự kiện selection change của worksheet để tính toán giá trị tự động cho bảng dữ liệu nhưng khi em thực hiện việc chuyển dữ liệu từ bảng dữ liệu này sang bảng có liên quan thì phát sinh vấn đề: mỗi lần di chuyển con trỏ hoặc click chuột vào vùng giao với target của sự kiện selection change thì dữ liệu đã chuyển sang bảng liên quan lại bị chuyển sang thêm một lần nữa, tạo thành các dữ liệu bị trùng trong bảng này.
Em gửi kèm file nhờ các bác hướng dẫn cách khắc phục với.
Nếu không dùng selection change, liệu có cách nào khác để worksheet tự động tính toán giá trị trong bảng dữ liệu mà không cần phải bấm nút không.
Cảm ơn các bác. }}}}}
đây là đoạn vba em đã mò mẫm
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim MyR As Range
On Error Resume Next
Set MyR = Intersect(Target, Range("e2:e17"))
If Not MyR Is Nothing Then
' tinh gia tri giao dich
If Target.Offset(0, -4).Value <> "" Then
Target.Offset(0, 1).Value = Target.Offset(0, -1).Value * Target.Value
ElseIf Target.Offset(0, -4).Value = "" Then
Target.Offset(0, 1).Value = ""
End If
' tu dong chuyen but toan giao dich sang bang giao dich tien
Range("i17").End(xlUp).Offset(1, 0).Value = Target.Offset(0, -4).Value
Range("i17").End(xlUp).Offset(0, 1).Value = Target.Offset(0, 1).Value
End If
End Sub
 

File đính kèm

Có 1 số cách sau:

- Dùng 1 InputBox để hỏi trước khi thực hiện copy đại khái như:
If InputBox("Có chép qua hong?", vbYesNo) = vbYes Then

- Chép xong xoá dòng vừa chép

- Nếu không muốn xoá, Chép xong đánh dấu dòng vừa chép

- Dùng sự kiện Sheet_Activate, là nhập 1 hơi bao nhiêu dòng tuỳ ý, nhập xong chuyển qua sheet khác, lúc đó mới chép.

- ...

Túm lại, là tuỳ đặc điểm dữ liệu, quy trình nhập liệu, điều kiện để sao chép, ...
 
Upvote 0
Web KT

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

Back
Top Bottom