Imposta il testo casella di testo al Oggi / Domani / Next Day / etc. automaticamente?
-
01-10-2019 - |
Domanda
Sono nuovo di programmazione in VBA, ma quello che sto cercando di fare in questo momento è avere una diapositiva di PowerPoint che aggiorna ogni giorno. Si tratta di una diapositiva previsioni del tempo che viene visualizzato nella hall, e attualmente ho aggiornare manualmente il settimo giorno prevede ogni giorno vengo in. Ciò significa che fino a quando vengo in, mostra il giorno corrente, come la data di ieri, e le previsioni giorno sette è che mostra ancora la data di ieri nelle previsioni. In definitiva mi piacerebbe averlo tirare nei dati meteo automaticamente pure, ma per lo scopo di questa domanda, sto solo cercando di capire come visualizzare le date in una casella di testo per i sette giorni della settimana.
In sostanza, c'è un colpo di testa lungo la parte superiore con: (ad esempio Mercoledì 30 Giugno 2010)
Poi i sette giorni allestiti in colonne con: (per esempio 30 giugno 1 luglio 2 luglio ...)
Vorrei impostare l'intestazione alla data corrente, come mostrato, e quindi le caselle di testo sette di seguito per il giorno corrente, poi domani, poi il giorno dopo ... e così via fino al settimo giorno.
Come potrei incrementare il DateTime? Grazie!
Soluzione
Se si vuole andare avanti a passi di 1 giorno, è possibile incrementare DateTime variabili con l'aggiunta di loro:
Dim d As DateTime
d = Now()
d = d + 1 ''# => tomorrow
Questo funziona perché internamente, un DateTime è rappresentato come un numero in virgola mobile con interi giorni prima della virgola e frazioni di giorni dopo la virgola. (Di conseguenza, l'aggiunta di 0,5 potrebbe effettivamente aggiungere 12 ore, anche se io non consiglierei di farlo.)
Per operazioni più complesse come l'aggiunta o mesi ore, non v'è DateAdd()
( vedi MSDN ).
d = DateAdd("h", 12, d) ''#=> 12 hours
È possibile "aggiungere" valori negativi con DateAdd()
, anche.
Altri suggerimenti
Ecco in Excel; i nomi delle funzioni VBA sarà lo stesso. Le funzioni di formato e DateAdd sono specificamente quello che stai cercando.
Public Sub writeDates()
Dim x As Date, i As Integer
x = Now
For i = 1 To 7
ThisWorkbook.Worksheets(1).Range("A" & i).Value = Format(DateAdd("d", i, x), "dddd, mmmm dd, yyyy")
Next
End Sub
Questi collegamenti dovrebbero aiutare un po '.
Il Now () la funzione, se si vuole ottenere la data con il tempo. Fare riferimento agli articoli connessi previsti per la somma e sottrae. Date()
dovrebbe farti solo la data, se mai capita di essere interessati solo nella data del giorno.
Ecco un interessante articolo sulle funzioni VBA.
se il vostro ancora interessato a fare questo fammi sapere come Ive ora completato la stessa cosa. Io uso un componente aggiuntivo che mi dà gli eventi di automazione, come il cambiamento diapositiva che lavoro come pps come quelli incorporati non funzionano una volta convertito in pps (per l'avvio automatico del pc e caricamento automatico di presentazione), questo è chiamato autoevents, google o email me per il file. Da che ho quindi aggiornare una forma con (è possibile quindi utilizzare un nameit addin per nominare le forme per FACILITÁ o utilizzare la finestra imediate di VBA per continuare a cambiare i numeri di forma fino a trovare la vergogna destra (dolore nel 2003) .... la mia diapositive cambiano ogni 20 secondi in modo aggiorno il tempo senza i secondi nella forma.
Ho altre campane n fischietti come la lettura da / per le date con uno slogan di testo per dire benvenuto al mio bloggs su certains giorni, ecc.
per esempio per aggiornamenti in tempo ... fatto su autoevent di cambiamento slitta ActivePresentation.SlideMaster.Shapes (3) .TextFrame.TextRange.Text = Format (Ora, "dddd gg mmmm yyyy") & & Format (Ora, "hh: mm") ""