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!

È stato utile?

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 '.

  1. date e ore in Excel ;
  2. Data e Ora .

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.

Capire Funzioni VBA e la loro usi

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") ""

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top