Excel - VBA - Oprettelse af en påmindelse

Excel er ofte det valgværktøj, der bruges til at manipulere data, generere rapporter og diagrammer fra forskellige typer data. Man kan imidlertid også bruge Excel til at lave andre interessante ting som f.eks. At oprette en påmindelse . Dette kan gøres ved hjælp af VBA-rammer. For at oprette en påmindelse skal en brugerdefineret VBA kode skrives, som udnytter nogle af de indbyggede funktionaliteter . Koden skal dog køres manuelt i første omgang, og den vil fortsætte med at køre til næste iterationer, så længe arbejdsbogen er åben. Hvis brugeren ikke vil køre koden manuelt, skal de definere en brugerdefineret rutine kaldet workbook_open .

Problem

Jeg ønsker at få en underretningsmeldingsboks automatisk, i henhold til dato og klokkeslæt i et Excel-regneark.

Kan dette gøres i VBA?

Opløsning

 --- A -------------- B -------- C ---------------------- D 1- Dato ------- Tid ------ Opgave ------------------- Påmind 2-3/3/2010 - 11:10 ---- Clean Room -------------- X 3- 13/3/2010 - 11:10 ---- Ren bil ------------ ----- X 

X: Angiv, at dette er en aktiv påmindelse. Fjern x for at deaktivere den pågældende påmindelse

På VBE (ALT + F11) og i projektopdagelsesvinduet skal du dobbeltklikke på "ThisWorkbook". Indsæt koden nedenfor.

 Private Const reminder As Integer = 1 Privat reminderNæste Som Variant Offentlig Underminde () CurrentTime = Tid nextMin = CDate (Format (Tid + 1 / (24 * 60), "Hh: mm")) Myrows = Range ("A1") .CurrentRegion.Rows.Count For thisrow = 2 Til myrows Hvis (Celler (thisrow, "D") = "X") Så thistime = CDate (CDate (Celler (thisrow, "A")) + Celler ")) Hvis ((thistime> = Nu) Og (thistime <= Nu + 1 * påmindelse / (24 * 60))) Derefter opgave = opgave & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Celler (thisrow, "B"), "hh: mm") Slut Hvis Slut Hvis Næste Hvis (opgave "") Så MsgBox task reminderNext = Nu + TimeSerial (0, påmindelse, 0) Application.OnTime reminderNext, "ThisWorkbook. remindMe ",, True End Sub 

Du skal også forstå et par ting:

  • Koden skal startes manuelt første gang. Derefter vil du fortsætte med at kontrollere tidsplanen, indtil du lukker bogen, som du har defineret i bogen.
  • Når du lukker bogen og genstarter den, skal du igen starte koden igen.
  • For at starte koden skal du gå til Macro, og der finder du en kørselsknap på menulinjen.
  • Hvis du ikke vil manuelt køre koden, og du vil have koden til at køre på egen hånd, når du starter bogen, skal du definere en rutine kaldet Workbook_Open ()
  • Så igen, hvis du vil køre koden manuelt, så gør du præcis som du gjorde før, og hvis du vil have koden til at køre på egen hånd, når bogen åbnes, skal du tilføje endnu en (du beholder den gamle kode dog ). Koden ville være:

 Privat Sub Workbook_Open () Ring påmindMet Slut Sub 

Bemærk

Takket være rizvisa1 for dette tip på forummet.

Forrige Artikel Næste Artikel

Top Tips