Sự Kiện Trong VBA
Menu
Y
Y
- Trang chủ
- Diễn đàn Bài viết mới Tìm chủ đề
- Có gì mới Bài viết mới Hoạt động mới nhất
Tìm kiếm
Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Tìm Tìm kiếm nâng cao…- Bài viết mới
- Tìm chủ đề
- Cách upload ảnh lên diễn đàn
- Trang chủ
- Diễn đàn
- Kỹ thuật xử lý Excel
- Class Module
- Thread starter thanhphong
- Ngày gửi 1/10/21
thanhphong
Guest
Lời mở đầu Topic này tôi sẽ giới thiệu phương pháp sử dụng sự kiện bằng macro VBA Excel. Sự kiện nghĩa là một đoạn code sẽ được thực thi khi một thao tác nào đó xảy ra làm biến đổi cái gì đó. Sự kiện là gì Chẳng hạn khi bạn click vào một nút bấm, đó là sự kiện. Khi bạn mở một file excel, đó là một sự kiện. Khi bạn nhập dữ liệu lên một sheet, đó cũng là sự kiện. Ứng với mỗi sự kiện đó, chúng ta sẽ viết code để nó thực thi một công việc nào đó. Nhận biết sự kiện Trong VBE (nơi viết code VBA), từ Project, các bạn click đúp lên sheet mà các bạn muốn viết sự kiện, hoặc click vào ThisWorkbook. Bạn cần đăng nhập để thấy đính kèm Ở cửa sổ bên trái (General) bạn click chọn Worksheet . Bạn cần đăng nhập để thấy đính kèm Ở cửa sổ bên phải (Declarations ) là nơi chúng ta lựa chọn sự kiện. Bạn cần đăng nhập để thấy đính kèm Một thủ tục sẽ được tạo ra. Đây là thủ tục sẽ thực thi khi sự kiện này phát sinh. Chúng ta sẽ viết code vào bên trong thủ tục này. Bạn cần đăng nhập để thấy đính kèm Trong thủ tục chứa đối số (ở ví dụ trên các bạn thấy đối số là Target ). Khi một cái gì đó thay đổi thì đối số này sẽ chứa thông tin ứng với sự thay đổi đó. Mã: 'Target cua su kien Change la Cells bi thay doi thong tin Private Sub Worksheet_Change(ByVal Target As Range) Target.Font.Color = RGB(255, 0, 0) ' Gia tri cua cell thay doi, cells se duoc to mau do End Sub Nếu chúng ta dùng ActiveX Control, thì việc tạo sự kiện cho nó cũng tươgn tự như với sheet ở trên. Bạn cần đăng nhập để thấy đính kèm Còn nữa. Đề nghị các bạn không comment vào topic này cho tới khi có thông báo đã dịch xong. Tham khảo và dịch từ : Bạn cần đăng nhập để thấy link Bbvtvba
Guest
Sự kiện với sheet :Tên sự kiện | Ý nghĩa |
---|---|
Activate | Khi sheet được active (sẵn sàng cho trạng thái nhập dữ liệu) |
BeforeDelete | Trước khi sheet được xóa |
BeforeDoubleClick | Khi click đúp vào cells, ngay trước khi thao tác click đúp được tiến hành |
BeforeRightClick | Khi click chuột phải vào cells, ngay trước khi thao tác click chuột phải được tiến hành |
Calculate | Sau khi được tính toán lại trên sheet (cells tham chiếu được thay đổi) |
Change | Khi cells thay đổi (chẳng hạn như khi nhập giá trị) |
Deactivate | Khi sheet không còn ở trạng thái kích hoạt |
FollowHyperlink | Khi click vào đường link có trên sheet |
LensGalleryRenderComplete | Khi các biểu tượng thư viện dòng dẫn đầu (động và tĩnh) được hiển thị (THVBA: Tôi chưa hiểu mục này) |
PivotTableAfterValueChange | Sau khi một ô hoặc dải ô trong bảng tổng hợp đã được chỉnh sửa hoặc tính toán lại |
PivotTableBeforeAllocateChanges | Trước khi các thay đổi được áp dụng cho bảng tổng hợp |
PivotTableBeforeCommitChanges | Trước khi các thay đổi đối với nguồn dữ liệu OLAP của bảng tổng hợp được áp dụng |
PivotTableBeforeDiscardChanges | Trước khi các thay đổi đối với bảng tổng hợp bị hủy |
PivotTableChangeSync | Sau khi bảng tổng hợp đã thay đổi |
PivotTableUpdate | Khi bảng tổng hợp được cập nhật |
SelectionChange | Khi lựa chọn ô thay đổi |
TableUpdate | Sau khi bảng truy vấn được kết nối với mô hình dữ liệu được cập nhật trong trang tính |
Yukino Ichikawa
VIP
Ở bài trên các bạn đã được giới thiệu các sự kiện của Worksheet. Sau đây tôi sẽ giới thiệu các sự kiện của Workbook.Tên sự kiện | Ý nghĩa |
---|---|
Activate | Workbook được kích hoạt |
AddinInstall | Phát sinh sau khi Addin được cài đặt |
AddinUninstall | Phát sinh sau khi Addin được hủy bỏ |
AfterSave | Phát sinh sau khi workbook được save |
AfterXmlExport | Phát sinh sau khi lưu dữ liệu XML vào workbook của Microsoft Office Excel. Hoặc sau khi xuất dữ liệu (Export). |
AfterXmlImport | Sau khi dữ liệu XML được làm mới, hoặc khi nạp dữ liệu XML vào workbook. |
BeforeClose | Trước khi đóng workbook. Hoặc khi workbook có sự thay đổi và người dùng lưu sự thay đổi này thì sự kiện sẽ phát sinh ngay trước khi điều này xảy ra. |
BeforePrint | Sự kiện phát sinh trước khi thực hiện lệnh in. |
BeforeSave | Sự kiện phát sinh ngay trước khi workbook được lưu. |
BeforeXmlExport | Phát sinh trước khi lưu dữ liệu XML vào workbook của Microsoft Office Excel. Hoặc sau khi xuất dữ liệu (Export). |
BeforeXmlImport | Trước khi dữ liệu XML được làm mới, hoặc khi nạp dữ liệu XML vào workbook. |
Deactivate | Workbook hủy kích hoạt |
ModelChange | Xảy ra sau khi mô hình dữ liệu Excel đã thay đổi. |
NewChart | Phát sinh khi có đồ thị biểu đồ mới được tạo ra trên workbook. |
NewSheet | Phát sinh khi có sheet mới được tạo ra. |
Open | Khi workbook được mở ra. |
PivotTableCloseConnection | Báo cáo PivotTable xảy ra sau khi bạn đóng kết nối với nguồn dữ liệu đó. |
PivotTableOpenConnection | Báo cáo PivotTable xảy ra sau khi thiết lập kết nối với nguồn dữ liệu đó. |
RowsetComplete | Sự kiện xảy ra khi người dùng gọi hành động tập hợp hàng trên bảng tổng hợp OLAP hoặc xem tập hợp bản ghi chi tiết. |
SheetActivate | Xảy ra khi trang tính hoạt động. |
SheetBeforeDelete | Xảy ra trước khi trang tính bị xóa. |
SheetBeforeDoubleClick | Xảy ra khi một trang tính được nhấp đúp, trước khi quá trình nhấp đúp mặc định diễn ra. |
SheetBeforeRightClick | Xảy ra khi một trang tính được nhấp chuột phải, trước khi quá trình nhấp chuột phải mặc định diễn ra. |
SheetCalculate | Xảy ra sau khi trang tính đã được tính toán lại hoặc sau khi dữ liệu sửa đổi đã được vẽ trên biểu đồ. |
SheetChange | Xảy ra khi một ô trang tính được sửa đổi bởi người dùng hoặc một liên kết bên ngoài. |
SheetDeactivate | Xảy ra khi trang tính không hoạt động. |
SheetFollowHyperlink | Xảy ra khi người dùng click vào đường link liên kết trên workbook. |
SheetLensGalleryRenderComplete | Xảy ra sau khi các biểu tượng thư viện dòng dẫn đầu trang tính (động và tĩnh) đã được hiển thị. |
SheetPivotTableAfterValueChange | Xảy ra sau khi một ô hoặc dải ô trong bảng tổng hợp đã được chỉnh sửa hoặc tính toán lại. |
SheetPivotTableBeforeAllocateChanges | Xảy ra trước khi các thay đổi được áp dụng cho PivotTable. |
SheetPivotTableBeforeCommitChanges | Xảy ra trước khi các thay đổi đối với nguồn dữ liệu PivotTable OLAP được áp dụng. |
SheetPivotTableBeforeDiscardChanges | Xảy ra trước khi các thay đổi đối với PivotTable bị loại bỏ. |
SheetPivotTableChangeSync | Xảy ra sau khi bảng tổng hợp đã thay đổi. |
SheetPivotTableUpdate | Xảy ra sau khi trang báo cáo PivotTable đã được cập nhật. |
SheetSelectionChange | Xảy ra khi vùng chọn thay đổi trong trang tính. Nó không xảy ra khi vùng chọn ở dạng biểu đồ. |
SheetTableUpdate | Xảy ra sau khi bảng chỗ ngồi đã được cập nhật. |
Sync | Xảy ra khi bản sao cục bộ của trang tính có trong không gian làm việc tài liệu được đồng bộ hóa với bản sao trên máy chủ. |
WindowActivate | Xảy ra khi cửa sổ sổ làm việc hoạt động. |
WindowDeactivate | Xảy ra khi cửa sổ sổ làm việc không hoạt động. |
WindowResize | Xảy ra khi cửa sổ làm việc của workbook được thay đổi kích thước. |
Yukino Ichikawa
VIP
Vô hiệu hóa sự kiện Để vô hiệu hóa sự kiện ta sử dụng Application.EnableEvents = False Mã: Application.EnableEvents = False 'Tại đây không phát sinh sự kiện Application.EnableEvents = True Sau khi xử lý xong, ta kích hoạt lại bắt sự kiện bằng lệnh Application.EnableEvents = True Làm phát sinh sự kiện Bạn không thể tạo ra các sự kiện liên quan tới sheet hay nút bấm (button). Những sự kiện này phát sinh tự động bởi thao tác Excel hay bằng VBA. Khi bạn muốn tạo ra một sự kiện, hãy tạo ra một hàm để thực hiện xử lý đó, và gọi hàm đó ra. Mã: Sub Main_thucthi() Call SelectionChangeCore(Range("A1")) 'Gọi hàm xử lý sự kiện End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call SelectionChangeCore(Target) 'Gọi hàm xử lý sự kiện End Sub Private Sub SelectionChangeCore(ByVal Target As Range) ' Xử lý sự kiện ở đây End Sub Nếu là sự kiện được tạo bởi class ta đều có thể kích hoạt nó. DDavicnguyen
Yêu THVBA
Yukino Ichikawa nói: Vô hiệu hóa sự kiện Để vô hiệu hóa sự kiện ta sử dụng Application.EnableEvents = False Mã: Application.EnableEvents = False 'Tại đây không phát sinh sự kiện Application.EnableEvents = True Sau khi xử lý xong, ta kích hoạt lại bắt sự kiện bằng lệnh Application.EnableEvents = True Làm phát sinh sự kiện Bạn không thể tạo ra các sự kiện liên quan tới sheet hay nút bấm (button). Những sự kiện này phát sinh tự động bởi thao tác Excel hay bằng VBA. Khi bạn muốn tạo ra một sự kiện, hãy tạo ra một hàm để thực hiện xử lý đó, và gọi hàm đó ra. Mã: Sub Main_thucthi() Call SelectionChangeCore(Range("A1")) 'Gọi hàm xử lý sự kiện End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Call SelectionChangeCore(Target) 'Gọi hàm xử lý sự kiện End Sub Private Sub SelectionChangeCore(ByVal Target As Range) ' Xử lý sự kiện ở đây End Sub Nếu là sự kiện được tạo bởi class ta đều có thể kích hoạt nó. Nhấn để mở rộng...E có ô A1 có dữ liệu là 20 và ô A2 có công thức lấy dữ liệu từ ô A1 khi e sửa dữ liệu ô A1 thì ô A1 được tô màu còn ô A2 thì không. Vậy làm thế nào để tô màu cả ô có công thức lấy dữ liệu từ ô đó ạ T
Thvba84
Yêu THVBA
Davicnguyen nói: E có ô A1 có dữ liệu là 20 và ô A2 có công thức lấy dữ liệu từ ô A1 khi e sửa dữ liệu ô A1 thì ô A1 được tô màu còn ô A2 thì không. Vậy làm thế nào để tô màu cả ô có công thức lấy dữ liệu từ ô đó ạ Nhấn để mở rộng...Code để tìm công thức liên quan đến cell, nếu có liên kết thì bôi màu, không thì thôi. Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link
- Trang chủ
- Diễn đàn
- Kỹ thuật xử lý Excel
- Class Module
Từ khóa » Sự Kiện Worksheet_change Trong Vba
-
Các Sự Kiện Khi Thao Tác Với Worksheet Trong VBA
-
Khai Thác Sự Kiện Worksheet_Change VBA Excel để Cập Nhật Dữ ...
-
Event Trong VBA - Viblo
-
Tự động Cập Nhật Báo Cáo Khi Thay đổi Thời Gian Bằng VBA
-
Xin Giúp đỡ Về Sự Kiện Worksheet_Change | Page 2
-
Worksheet.Change Event (Excel) | Microsoft Docs
-
Events (sự Kiện) Trong VBA Excel - Tài Liệu Text - 123doc
-
Nhiều Sự Kiện Worksheet_Change Trong Mã Vba - HelpEx
-
VBA Worksheet Change Event - Run A Macro When A Cell Changes
-
Cách Tự động Ghi Nhận Thời Gian Nhập Dữ Liệu Bằng VBA
-
Sự Kiện Excel Worksheet_Change Không Hoạt động - HelpEx
-
Worksheet Change Event - Excel Dashboards VBA
-
SPRINGO KHAI GIẢNG KHÓA HỌC EXCEL - VBA