Excel - VBA - Ustvarjanje opomnika

Excel je pogosto orodje izbire za manipuliranje podatkov, generiranje poročil in grafikonov iz različnih vrst podatkov. Lahko pa uporabimo tudi Excel za druge zanimive stvari, kot je ustvarjanje opomnika . To lahko storite z uporabo okvira VBA. Če želite ustvariti opomnik, morate zapisati kodo VBA po meri, ki uporablja nekatere vgrajene funkcionalnosti . Koda pa je treba v prvi fazi zagnati ročno in še naprej se bo izvajala za naslednje iteracije, dokler je delovni zvezek odprt. Če uporabnik ne želi ročno zagnati kode, mora definirati podprogram po meri, imenovan workbook_open .

Težava

Želim, da sam polje z opomniki samodejno, glede na datum in čas v Excelovem delovnem listu.

Ali je to mogoče v VBA?

Rešitev

 --- A -------------- B -------- C ---------------------- D 1- Datum ------- Čas ------ Naloga ------------------- Opomni 2- 13/3/2010 - 11:10 ---- Čista soba -------------- X 3- 13/3/2010 - 11:10 ---- Clean Car ------------ ----- X 

X: označuje, da je to opomnik. Odstranite x, da onemogočite ta opomnik

Na VBE (ALT + F11) in v oknu projekta raziskovalec dvokliknite "ThisWorkbook". Prilepite spodnjo kodo.

 Opomnik za zasebno zgradbo Kot Integer = 1 Zasebni opomnikNaslednji kot varianta Javni pod opomnikMe () currentTime = Čas naslednjiMin = CDate (Format (Time + 1 / (24 * 60), "hh: mm")) myrows = Razpon ("A1") .CurrentRegion.Rows.Count Za thisrow = 2 Za myrows If (Celice (thisrow, "D") = "X") Potem thistime = CDate (CDate (Celice (thisrow, "A")) + Celice (thisrow, "B") ")) Če ((thistime> = Now) in (thistime <= zdaj + 1 * opomnik / (24 * 60))) Nato task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Celice (thisrow, "B"), "hh: mm") End Če End Če Next Če (naloga "") Potem MsgBox naloga reminderNext = Zdaj + TimeSerial (0, opomnik, 0) Application.OnTime opomnikNext, "ThisWorkbook. podsjetnik ", True End Sub 

Prav tako morate razumeti nekaj stvari:

  • Kodo je treba prvič zagnati ročno. Po tem, dokler knjige ne zaprete, bo še naprej preverjala urnik, kot ste ga definirali v knjigi.
  • Ko zaprete knjigo in jo znova zaženete, morate znova zagnati kodo.
  • Če želite zagnati kodo, boste morali iti v Macro in tam boste našli gumb za zagon v menijski vrstici.
  • Če kode ne želite ročno zagnati in želite, da se kodo izvaja vedno, ko jo zaženete, morate definirati rutino, imenovano Workbook_Open ()
  • Torej še enkrat, če želite ročno zagnati kodo, potem naredite natančno tako, kot ste to storili prej, in če želite, da se koda izvaja sama po sebi, ko je knjiga odprta, potem morate dodati še eno (čeprav ohranite staro kodo) ). Koda bi bila:

 Zasebno pod Workbook_Open () Pokliči podsjetnik Sub Sub 

Opomba

Hvala za rizvisa1 za ta nasvet na forumu.

Prejšnji Članek Naslednji Članek

Top Nasveti