Inserisci data e ora con VBA

Sommario

Inserire la data in Excel utilizzando VBA è semplice come scrivere una formula in una cella.

Il codice del timestamp VBA è:

Intervallo ("A1"). valore = Formato (ora, "mm/gg/aaaa HH:mm:ss")

Questo codice mostrerà la data e l'ora correnti nella cella A1. E sì, è così. E 'fatto.

La funzione "Ora" restituisce la data e l'ora correnti e la funzione "Formato" formatta l'output nel formato "mm/gg/aaaa HH:mm:ss".

Mostra data e ora ogni volta che viene apportata una modifica utilizzando VBA.

Diciamo che hai preparato un foglio. In questo foglio, vuoi che il tempo venga mostrato nella colonna B ogni volta che qualcuno fa una voce Colonna A.

Ora abbiamo bisogno di un codice timestamp VBA che venga eseguito ogni volta che viene apportata una modifica nella colonna A.

Il codice seguente consente di svolgere facilmente il lavoro.

Esegui macro quando viene apportata una modifica (gestore eventi di modifica del foglio di lavoro)

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A:A")) Is Nothing ThenOn Error Resume Next If Target.Value = "" ThenTarget.Offset(0, 1) = "" Else Target .Offset(0, 1).Value = Format(Now, "mm/dd/yyyy HH:mm:ss") End If End If End Sub 

Per eseguire questo codice, apri VBA e fai doppio clic sul foglio nella finestra del progetto su cui vuoi mostrare il timestamp.

Ora dobbiamo usare il gestore di eventi VBA poiché vogliamo eseguire il nostro codice da eseguire ogni volta che viene apportata una modifica.

Dal menu a discesa sopra il codice, seleziona Foglio di lavoro.

Ora adiacente al menu a discesa del foglio di lavoro, viene visualizzato un altro menu a discesa. Contiene molti gestori di eventi. Per ora, seleziona "modifica".

Ora copia qui il codice sopra.

Ed è fatto. Torna al tuo foglio e controllalo.

Spiegazione del codice:

    • Il codice viene scritto sul foglio1 facendo doppio clic su di esso. Significa che il tuo codice appartiene solo a questo foglio.
    • Abbiamo usato il gestore di eventi "Cambia" di "Foglio di lavoro" per attivare il nostro codice VBA.
    • Private Sub Worksheet_Change (ByVal Target As Range)

      Questo è il nome di subroutine fisso e predefinito di un gestore di eventi di modifica.

    • Vogliamo che il nostro codice esegua la modifica solo nella colonna A.
    • If Not Intersect(Target, Range("A:A")) non è niente allora

      Questa riga controlla se la cella modificata è nella colonna A o meno.

    • Ora, se la riga sopra restituisce True, allora queste righe vengono eseguite
In caso di errore Riprendi successivo If Target.Value = "" ThenTarget.Offset(0, 1) = "" ElseTarget.Offset(0, 1).Value = Format(Now, "mm/dd/yyyy HH:mm:ss")

La prima riga ignora il pop di errore ed esegue queste due righe. Se ometti On Errore Riprendi Avanti vedrai apparire un errore quando elimini un valore nella colonna A.

Se Target.Value = "" Allora

:- Questa riga controlla se una cella nella colonna A è vuota. Se sì allora

Obiettivo.Offset(0, 1) = ""

:- Questa riga elimina il valore della cella adiacente.

E se Falso

 Altrimenti Target.Offset(0, 1).Value = Format(Ora, "mm/gg/aaaa HH:mm:ss")

:- Questa riga inserisce l'ora e la data correnti accanto alla colonna A.

  • E le ultime tre righe chiudono semplicemente il rispettivo blocco. Ed è fatto. Ora hai un foglio che fornisce l'ora esatta della modifica effettuata in una cella della colonna A.

Potresti aver notato che ci sono diversi gestori di eventi nell'elenco a discesa. Gioca intorno a loro. Prova a capire cosa funziona ogni gestore di eventi. E se hai qualche difficoltà, scrivilo nella sezione commenti.

Inserisci data e ora con VBA

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave