Vložte pečiatku dátumu a času s VBA

Obsah

Vloženie dátumu a času do Excelu pomocou VBA je také jednoduché, ako napísať vzorec do bunky.

Kód časovej pečiatky VBA je:

Rozsah („A1“). Hodnota = Formát (teraz "mm/dd/rrrr HH: mm: ss")

Tento kód zobrazí aktuálny dátum a čas v bunke A1. A áno, to je ono. hotovo.

Funkcia „Teraz“ vracia aktuálny dátum a čas a funkcia „Formátovať“ formátuje výstup do formátu „mm/dd/rrrr HH: mm: ss“.

Zobraziť dátum a čas vždy, keď sa zmena vykoná pomocou jazyka VBA.

Povedzme, že ste pripravili list. V tomto hárku chcete, aby sa čas zobrazoval v stĺpci B vždy, keď niekto urobí záznam v stĺpci A.

Teraz potrebujeme kód časovej pečiatky VBA, ktorý sa spustí zakaždým, keď sa vykoná zmena v stĺpci A.

Nasledujúci kód uľahčuje prácu.

Spustiť makro po vykonaní zmeny (obsluha udalosti zmeny pracovného hárka)

Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah) Ak sa nepretína (cieľ, rozsah ("A: A")) nie je nič potom chyba pokračovať Ďalej Ak Target.Value = "" ThenTarget.Offset (0, 1) = "" Iný cieľ .Offset (0, 1). Hodnota = formát (teraz „mm/dd/rrrr HH: mm: ss“) End If End If End Sub 

Ak chcete spustiť tento kód, otvorte VBA a dvakrát kliknite na list v okne projektu, na ktorom chcete zobraziť časovú pečiatku.

Teraz musíme použiť obslužný program udalostí VBA, pretože chceme, aby sa náš kód spustil vždy, keď dôjde k zmene.

V rozbaľovacej ponuke nad kódom vyberte pracovný hárok.

Teraz vedľa rozbaľovacej ponuky pracovného hárka sa zobrazí ďalšia rozbaľovacia ponuka. Obsahuje veľa obslužných programov udalostí. Zatiaľ zvoľte „zmeniť“.

Teraz skopírujte vyššie uvedený kód.

A je hotovo. Vráťte sa k svojmu listu a skontrolujte ho.

Vysvetlenie kódu:

    • Kód je zapísaný na hárok1 dvojitým kliknutím naň. Znamená to, že váš kód patrí iba tomuto listu.
    • Na spustenie nášho kódu VBA sme použili obslužný program udalostí „Zmeniť“ v „pracovnom hárku“.
    • Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah)

      Toto je pevný a predvolený názov podprogramu obsluhy udalosti zmeny.

    • Chceme, aby sa v našom kóde spustila zmena, ktorá sa vykonáva iba v stĺpci A.
    • Ak sa nepretína (cieľ, rozsah („A: A“)), potom nie je nič

      Tento riadok kontroluje, či je zmenená bunka v stĺpci A alebo nie.

    • Teraz, ak vyššie uvedený riadok vráti hodnotu True, tieto riadky sa vykonajú
Pri chybe Pokračovať ďalej Ak Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Hodnota = formát (teraz "mm/dd/rrrr HH: mm: ss")

Prvý riadok ignoruje chybové hlásenie a spustí tieto dva riadky. Ak vynecháte On Chyba Pokračovať ďalej pri vymazaní hodnoty v stĺpci A sa zobrazí chyba.

Ak Target.Value = "" Potom

:- Tento riadok kontroluje, či je bunka v stĺpci A prázdna. Ak áno, potom

Target.Offset (0, 1) = ""

:- Tento riadok vymaže hodnotu susednej bunky.

A ak False

 Iný cieľ.Offset (0, 1). Hodnota = formát (teraz "mm/dd/rrrr HH: mm: ss")

:- Tento riadok zadáva aktuálny čas a dátum do stĺpca A.

  • A posledné tri riadky jednoducho zatvoria príslušný blok. A je hotovo. Teraz máte list, ktorý udáva presný čas zmeny vykonaný v bunke stĺpca A.

Možno ste si všimli, že v rozbaľovacom zozname je niekoľko spracovateľov udalostí. Hrajte sa okolo nich. Skúste zistiť, ako jednotlivé obslužné rutiny udalostí fungujú. A ak máte nejaké problémy, napíšte to do sekcie komentárov.

Vložte pečiatku dátumu a času s VBA

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave