Excel - VBA - Tạo lời nhắc

Excel thường là công cụ được lựa chọn để thao tác dữ liệu, tạo báo cáo và biểu đồ từ các loại dữ liệu khác nhau. Tuy nhiên, người ta cũng có thể sử dụng Excel để thực hiện những điều thú vị khác như tạo lời nhắc . Điều này có thể được thực hiện bằng cách sử dụng khung VBA. Để tạo một lời nhắc, một VBA tùy chỉnh cần phải được viết bằng cách sử dụng một số chức năng sẵn có . Mã, tuy nhiên, cần phải được chạy thủ công trong trường hợp đầu tiên và nó sẽ tiếp tục chạy cho các lần lặp tiếp theo miễn là sổ làm việc được mở. Nếu người dùng không muốn chạy mã theo cách thủ công, họ phải xác định một thói quen tùy chỉnh được gọi là workbook_open .

Vấn đề

Tôi muốn nhận hộp thông báo Nhắc nhở tự động, theo ngày và giờ trong bảng tính Excel.

Điều này có thể được thực hiện trong VBA?

Dung dịch

 --- A -------------- B -------- C ---------------------- D 1- Ngày ------- Thời gian ------ Nhiệm vụ ------------------- Nhắc nhở 2- 13/3/2010 - 11:10 ---- Phòng sạch -------------- X 3- 13/3/2010 - 11:10 ---- Xe sạch ------------ ----- X 

X: chỉ ra rằng đây là một lời nhắc hoạt động. Xóa x để tắt lời nhắc đó

Trên VBE (ALT + F11) và trong cửa sổ thám hiểm dự án, nhấp đúp vào "ThisWorkbook". Dán mã dưới đây.

 Lời nhắc riêng tư dưới dạng Integer = 1 Lời nhắc riêng tư Nội dung dưới dạng Biến thể công khai Sub nhắcMe () currentTime = Thời gian nextMin = CDate (Định dạng (Thời gian + 1 / (24 * 60), "hh: mm")) .CienRegion.Rows.Count For thisrow = 2 To mybow If (Cells (thisrow, "D") = "X") Sau đó thistime = CDate (CDate (Cells (thisrow, "A")) + Cells (thisrow, "B ")) If ((thistime> = Now) Và (thistime <= Now + 1 * nhắc nhở / (24 * 60))) Sau đó task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Các ô (thisrow, "B"), "hh: mm") End If End If Next If (task "") Sau đó, MsgBox nhắc nhở tác vụNext = Now + TimeSerial (0, nhắc nhở, 0) Ứng dụng. nhắc nhở ",, True End Sub 

Ngoài ra, bạn cần hiểu một số điều:

  • Mã cần phải được bắt đầu bằng tay lần đầu tiên. Sau đó, cho đến khi bạn đóng cuốn sách, nó sẽ tiếp tục kiểm tra lịch trình như bạn đã xác định trong cuốn sách.
  • Khi bạn đóng sách và khởi chạy lại, bạn lại phải bắt đầu mã một lần nữa.
  • Để bắt đầu mã, bạn sẽ cần truy cập Macro và ở đó bạn sẽ tìm thấy nút chạy trên thanh menu.
  • Nếu bạn không muốn chạy mã theo cách thủ công và bạn muốn mã tự chạy bất cứ khi nào bạn bắt đầu sách, thì bạn phải xác định một thói quen gọi là Workbook_Open ()
  • Vì vậy, một lần nữa, nếu bạn muốn chạy mã theo cách thủ công thì bạn làm chính xác như bạn đã làm trước đây và nếu bạn muốn mã tự chạy bất cứ khi nào sách được mở, thì bạn cần thêm một mã nữa (mặc dù vậy bạn vẫn giữ mã cũ ). Mã sẽ là:

 Private Sub Workbook_Open () Gọi nhắc nhởMe End Sub 

chú thích

Cảm ơn rizvisa1 cho mẹo này trên diễn đàn.

Bài TrướC TiếP Theo Bài ViếT

Lên Trên LờI Khuyên