Excel - VBA - Erstellen einer Erinnerung

Excel ist häufig das Werkzeug der Wahl, um Daten zu bearbeiten und Berichte und Diagramme aus verschiedenen Datentypen zu erstellen. Sie können jedoch auch Excel verwenden, um andere interessante Dinge zu erledigen, z. B. eine Erinnerung zu erstellen . Dies kann mithilfe des VBA-Frameworks erfolgen. Um eine Erinnerung zu erstellen, muss ein benutzerdefinierter VBA- Code geschrieben werden, der einige der integrierten Funktionen nutzt. Der Code muss jedoch in der ersten Instanz manuell ausgeführt werden und wird auch für die nächsten Iterationen ausgeführt, solange die Arbeitsmappe geöffnet ist. Wenn der Benutzer den Code nicht manuell ausführen möchte, muss er eine benutzerdefinierte Routine mit dem Namen workbook_open definieren .

Problem

Ich möchte automatisch ein Erinnerungsfenster erhalten, das dem Datum und der Uhrzeit in einem Excel-Arbeitsblatt entspricht.

Kann das in VBA gemacht werden?

Lösung

 --- A -------------- B -------- C ---------------------- D 1- Datum ------- Uhrzeit ------ Aufgabe ------------------- Erinnern Sie 2- 13/3/2010 - 11:10 ---- Reinraum -------------- X 3- 13/3/2010 - 11:10 ---- Auto reinigen ------------ ----- X 

X: Zeigen Sie an, dass dies eine aktive Erinnerung ist. Entfernen Sie x, um diese Erinnerung zu deaktivieren

Doppelklicken Sie in VBE (ALT + F11) und im Projekt-Explorer-Fenster auf "ThisWorkbook". Fügen Sie den Code unten ein.

 Private Const Erinnerung As Integer = 1 Private ErinnerungNext As Variant Public Sub remindMe () currentTime = Time nextMin = CDate (Format (Zeit + 1 / (24 * 60), "hh: mm")) myrows = Range ("A1") .CurrentRegion.Rows.Count For thisrow = 2 To myrows If (Zellen (thisrow, "D") = "X") Dann ist die Zeit = CDate (CDate (Zellen (thisrow, "A")) + Zellen (thisrow, "B ")) If ((thistime> = Now) And (thistime <= Now + 1 * reminder / (24 * 60))) Then task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Cells (thisrow, "B"), "hh: mm") End If End If Next If (Task "") Dann MsgBox-Task reminderNext = Now + TimeSerial (0, Reminder, 0) Application.OnTime reminderNext, "ThisWorkbook. remindMe ",, True End Sub 

Außerdem müssen Sie einige Dinge verstehen:

  • Der Code muss beim ersten Mal manuell gestartet werden. Danach wird der im Buch festgelegte Zeitplan so lange überprüft, bis Sie das Buch schließen.
  • Sobald Sie das Buch schließen und neu starten, müssen Sie den Code erneut starten.
  • Um den Code zu starten, müssten Sie zu Macro gehen und dort finden Sie eine Ausführen-Schaltfläche in der Menüleiste.
  • Wenn Sie den Code nicht manuell ausführen möchten und der Code beim Starten des Buchs automatisch ausgeführt werden soll, müssen Sie eine Routine mit dem Namen Workbook_Open () definieren.
  • Wenn Sie den Code manuell ausführen möchten, tun Sie genau das, was Sie zuvor getan haben, und wenn Sie möchten, dass der Code beim Öffnen des Buchs von selbst ausgeführt wird, müssen Sie einen weiteren Code hinzufügen (Sie behalten jedoch den alten Code bei) ). Der Code wäre:

 Private Sub Workbook_Open () Rufen Sie remindMe End Sub auf 

Hinweis

Danke an rizvisa1 für diesen Tipp im Forum.

Vorherige Artikel Nächster Artikel

Top-Tipps