Sự kiện nào thực hiện giống như Worksheet_Change() ? (1 người xem)

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

Người dùng đang xem chủ đề này

viehoai

Thành viên gắn bó
Tham gia
22/5/09
Bài viết
2,599
Được thích
2,908
Tôi thấy một số file chương trình không biết cách truyền lệnh thế nào mà nó giống như sự kiện Worksheet_Change(). Để dễ hiểu tôi trình bày như thế này:
Có 2 file (cùng đang mở) là File chương trình là ProgFile.xls (hoặc ProgFile.xla) và file hiện hành CurFile.xls (file này hoàn toàn không có code). Khi có sự thay đổi trên sheet của file CurFile.xls thì thực hiện 1 lệnh nào đó của người dùng từ file ProgFile.xls tác dụng lên sheet hiện hành của file CurFile.xls.
Vậy xin hỏi các anh chị có sự kiện nào để thực hiện điều đó?
(Xin nói thêm là nếu file CurFile.xls sử dụng sự kiện Worksheet_Change() thì không có vấn đề gì để bàn. File này hoàn toàn không có code)
Xin cảm ơn các anh chị.
 
Cái này em thấy giống chương trình dutoan-excel của bác Tuấn viết và 1 số chương trình khác. Cũng muốn hỏi về vấn đề này mà nghề ko có nên ko dám đua theo }}}}}
 
Upvote 0
Tôi thấy một số file chương trình không biết cách truyền lệnh thế nào mà nó giống như sự kiện Worksheet_Change(). Để dễ hiểu tôi trình bày như thế này:
Có 2 file (cùng đang mở) là File chương trình là ProgFile.xls (hoặc ProgFile.xla) và file hiện hành CurFile.xls (file này hoàn toàn không có code). Khi có sự thay đổi trên sheet của file CurFile.xls thì thực hiện 1 lệnh nào đó của người dùng từ file ProgFile.xls tác dụng lên sheet hiện hành của file CurFile.xls.
Vậy xin hỏi các anh chị có sự kiện nào để thực hiện điều đó?
(Xin nói thêm là nếu file CurFile.xls sử dụng sự kiện Worksheet_Change() thì không có vấn đề gì để bàn. File này hoàn toàn không có code)
Xin cảm ơn các anh chị.

Dùng Class trên file ProgFile.xla bạn à
 
Upvote 0
Lâu nay nghe class nhưng chưa được biết dùng. Xin Sư phụ cho đoạn code mẫu để em dễ bề nghiên cứu tiếp
Em xin cảm ơn.

Ví dụ thế này:
1> Code trong Module:
Mã:
Dim ExlObj As New wkbEvent
Sub Event_Start()
  If ExlObj Is Nothing Then Set ExlObj = New wkbEvent
End Sub
Sub Event_Stop()
  Set ExlObj = Nothing
End Sub
2> Chèn 1 Class, đặt tên là wkbEvent với code:
Mã:
Public WithEvents ExlApp As Application
Private Sub Class_Initialize()
  Set ExlApp = Application
End Sub
Private Sub Class_Terminate()
  Set ExlApp = Nothing
End Sub
Private Sub ExlApp_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  On Error Resume Next
  If Target.Address = "$A$1" Then
    If Len(Target.Value) Then MsgBox Target.Value
  End If
End Sub
Private Sub ExlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
  On Error Resume Next
  If Target.Address = "$B$1" Then MsgBox "Thí nghiem su kien Change"
End Sub
3> Đặt phím tắt cho Sub Event_StartCtrl + Shift + I Sub Event_StopCtrl + Shift + T
4> Lưu thành 1 Add-In (với tên tùy ý)
5> Mở file trắng, gọi Add-In vừa lưu
5> Bấm Ctrl + Shift + I để gọi sự kiện
6> Gõ vào cell A1, xem kết quả.
7> Chọn chuột vào cell B1, xem kết quả
 

File đính kèm

Upvote 0
Ùi, lại một vấn đề mới trong excel. Nhưng thấy hay hay. Em phải nghiên cứu thêm mới được
 
Upvote 0

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

Back
Top Bottom