Excel - VBA - Створення нагадування
Excel часто є інструментом вибору для маніпулювання даними, створення звітів і діаграм з різних типів даних. Можна, однак, також використовувати Excel для виконання інших цікавих речей, таких як створення нагадування . Це можна зробити за допомогою рамки VBA. Щоб створити нагадування, потрібно написати спеціальний код VBA, який використовує деякі вбудовані функції . Код, однак, повинен бути запущений вручну в першому випадку, і він буде продовжувати працювати для наступних ітерацій, поки робоча книга відкрита. Якщо користувач не хоче запускати код вручну, вони повинні визначити спеціальну процедуру під назвою workbook_open . 

Проблема
Я хочу отримати вікно повідомлення нагадування автоматично, відповідно до дати та часу в робочому аркуші Excel.
Чи можна це зробити в VBA?
Рішення
--- A -------------- B -------- C ---------------------- D 1- Дата ------- Час ------ Завдання ------------------- Нагадати 2- 13/3/2010 - 11:10 ---- Чистий номер -------------- X 3- 13/3/2010 - 11:10 ---- Чистий автомобіль ------------ ----- X
X: вказує, що це активний нагадування. Щоб вимкнути нагадування, видаліть x
На VBE (ALT + F11) і в вікні explorer проекту двічі клацніть на "ThisWorkbook". Вставте код нижче.
Приватне наповнення як ціле = 1 Приватне нагадуванняНаступник як варіант Публічний підсистема () currentTime = Час nextMin = CDate (Формат (Час + 1 / (24 * 60), "hh: mm")) myrows = Діапазон ("A1") .CurrentRegion.Rows.Count Для thisrow = 2 Для перегляду Якщо (клітинки (це, "D") = "X") Тоді thіtime = CDate (CDate (клітинки (thisrow, "A")) + клітинки (thisrow, "B") ")) If ((thistime> = Now) А (thistime <= Тепер + 1 * нагадування / (24 * 60))) Тоді task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Клітинки (thisrow, "B"), "hh: mm") End If End Якщо Next (завдання "") Тоді MsgBox task reminderNext = Тепер + TimeSerial (0, нагадування, 0) Application.OnTime reminderNext, "ThisWorkbook. подсказка "TrueMe", True End Sub
Також потрібно зрозуміти кілька речей:
- Код повинен бути запущений вручну вперше. Після цього, поки ви не закриєте книгу, вона буде продовжувати перевірку графіка, як ви визначили в книзі.
- Як тільки ви закриєте книгу і відновите її, вам знову доведеться запустити код ще раз.
- Щоб запустити код, вам потрібно буде перейти до макросу, і там ви знайдете кнопку запуску на панелі меню.
- Якщо ви не хочете вручну запускати код, і ви хочете, щоб код запускався самостійно, коли ви запускаєте книгу, тоді вам потрібно визначити процедуру, яка називається Workbook_Open ()
- Знову ж таки, якщо ви хочете вручну запустити код, то ви робите саме так, як це робили раніше, і якщо ви хочете, щоб код працював самостійно, коли книга відкрита, то вам потрібно додати ще один (хоча старий код зберігається) ). Код буде:
Приватний підручник Workbook_Open () Викличте Sub Sub EndMe End
Примітка
Завдяки rizvisa1 за цей відгук на форумі.