Excel - VBA - Izrada podsjetnika
Excel je često sredstvo izbora za manipuliranje podacima, generiranje izvješća i grafikona iz različitih vrsta podataka. Međutim, Excel također može koristiti i druge zanimljive stvari kao što je stvaranje podsjetnika . To se može učiniti pomoću VBA okvira. Da biste stvorili podsjetnik, potrebno je napisati prilagođeni VBA kôd koji koristi neke od ugrađenih funkcionalnosti . Kôd, međutim, treba pokrenuti ručno u prvom stupnju i nastaviti će se izvoditi za sljedeće iteracije sve dok je radna knjiga otvorena. Ako korisnik ne želi ručno pokretati kôd, moraju definirati prilagođenu rutinu nazvanu workbook_open .
Problem
Želim automatski primiti okvir za podsjetnike, u skladu s datumom i vremenom u Excelovom radnom listu.
Može li se to učiniti u VBA?
Riješenje
--- A -------------- B -------- C ---------------------- D 1- Datum ------- Vrijeme ------ Zadatak ------------------- Podsjeti 2- 13/3/2010 - 11:10 ---- Čista soba -------------- X 3- 13/3/2010 - 11:10 ---- Čist automobil ------------ ----- X
X: označava da je ovo aktivni podsjetnik. Uklonite x da biste onemogućili taj podsjetnik
Na VBE (ALT + F11) iu prozoru projekta explorer, dvaput kliknite na "ThisWorkbook". Zalijepite donji kôd.
Podsjetnik privatnog ustroja As Integer = 1 Privatni podsjetnikSljedeći kao varijanta Javni podsjetnik () currentTime = Vrijeme nextMin = CDate (Format (Vrijeme + 1 / (24 * 60), "hh: mm")) myrows = Raspon ("A1") .CurrentRegion.Rows.Count For thisrow = 2 Za myrows If (Ćelije (thisrow, "D") = "X") Zatim thistime = CDate (CDate (ćelije (thisrow, "A")) + ćelije (thisrow, "B") ")) Ako ((thistime> = Now) I (thistime <= Sada + 1 * podsjetnik / (24 * 60))) Onda task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Cells (thisrow, "B"), "hh: mm") End If End Ako Next (zadatak "") Onda MsgBox task reminderNext = Sada + TimeSerial (0, podsjetnik, 0) Application.OnTime reminderNext, "ThisWorkbook. podsjećam ", True End Sub
Također morate razumjeti nekoliko stvari:
- Kod treba pokrenuti ručno prvi put. Nakon toga, dok ne zatvorite knjigu, ona će i dalje provjeravati raspored kao što ste definirali u knjizi.
- Kada zatvorite knjigu i ponovo je pokrenete, ponovno morate pokrenuti kôd.
- Da biste pokrenuli kôd, trebate otići u Macro (Makro), a na traci izbornika pronaći ćete gumb za pokretanje.
- Ako ne želite ručno pokrenuti kôd i želite da se kôd pokreće samostalno svaki put kad pokrenete knjigu, morate definirati rutinu pod nazivom Workbook_Open ()
- Dakle, opet, ako želite ručno pokrenuti kôd onda radite točno onako kako ste radili prije i ako želite da se kôd pokreće samostalno svaki put kad se knjiga otvori, tada trebate dodati još jedan (iako zadržavate stari kôd ). Kôd bi bio:
Privatni pod Workbook_Open () Nazovite podsjetnik Kraj Sub
Bilješka
Zahvaljujući rizvisa1 za ovaj savjet na forumu.