Vložte razítko data a času pomocí VBA

Obsah

Vložení data a času do Excelu pomocí VBA je stejně jednoduché jako psaní vzorce do buňky.

Kód časového razítka VBA je:

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

Tento kód zobrazí aktuální datum a čas v buňce A1. A ano, to je ono. je to hotovo.

Funkce „Nyní“ vrací aktuální datum a čas a funkce „Formátovat“ formátuje výstup do formátu „mm/dd/rrrr HH: mm: ss“.

Kdykoli je změna provedena pomocí VBA, zobrazte datum a čas.

Řekněme, že jste připravili list. V tomto listu chcete, aby se čas zobrazoval ve sloupci B, kdykoli někdo provede záznam ve sloupci A.

Nyní potřebujeme kód časového razítka VBA, který se spustí pokaždé, když dojde ke změně ve sloupci A.

Níže uvedený kód usnadňuje práci.

Spustit makro po provedení změny (obsluha události změny pracovního listu)

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) .Hodnota = Formát (nyní „mm/dd/rrrr HH: mm: ss“) End If End If End Sub 

Chcete -li spustit tento kód, otevřete VBA a dvakrát klikněte na list v okně projektu, na kterém chcete zobrazit časové razítko.

Nyní musíme použít obslužný program událostí VBA, protože chceme spustit náš kód tak, aby běžel pokaždé, když dojde ke změně.

Z rozevíracího seznamu nad kódem vyberte list.

Nyní vedle rozevíracího seznamu listu se zobrazí další rozevírací seznam. Obsahuje spoustu obslužných programů událostí. Prozatím vyberte „změnit“.

Nyní zkopírujte výše uvedený kód zde.

A je hotovo. Vraťte se ke svému listu a zkontrolujte ho.

Vysvětlení kódu:

    • Kód je zapsán na sheet1 poklepáním na něj. To znamená, že váš kód patří pouze tomuto listu.
    • Ke spuštění našeho kódu VBA jsme použili obslužnou rutinu události „Změnit“ v „listu“.
    • Soukromý dílčí pracovní list_Změna (cíl podle cíle jako rozsah)

      Toto je pevný a výchozí název podprogramu obsluhy události změny.

    • Chceme, aby náš kód spustil změnu pouze ve sloupci A.
    • Pokud není protínat (cíl, rozsah („A: A“)), pak není nic

      Tento řádek kontroluje, zda je změněná buňka ve sloupci A nebo ne.

    • Pokud výše uvedený řádek vrátí hodnotu True, budou tyto řádky provedeny
On Error Resume Next If Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Format (Now, "mm/dd/yyyy HH: mm: ss")

První řádek ignoruje chybové hlášení a spustí tyto dva řádky. Pokud zapnete Zap Chyba Pokračovat Další při odstranění hodnoty ve sloupci A se zobrazí chyba.

Pokud Target.Value = "" Potom

:- Tento řádek kontroluje, zda je buňka ve sloupci A prázdná. Pokud ano, pak

Target.Offset (0, 1) = ""

:- Tento řádek odstraní sousední hodnotu buňky.

A pokud False

 Jinak Target.Offset (0, 1) .Value = Format (Nyní, "mm/dd/rrrr HH: mm: ss")

:- Tento řádek zadává aktuální čas a datum v sousedství sloupce A.

  • A poslední tři řádky jen zavírají jejich příslušný blok. A je hotovo. Nyní máte list, který udává přesný čas změny provedený v buňce sloupce A.

Možná jste si všimli, že v rozevíracím seznamu je několik obslužných rutin událostí. Hrajte si s nimi. Pokuste se zjistit, co každý obslužný program událostí funguje. A pokud máte nějaké potíže, napište to do sekce komentářů.

Vložte razítko data a času pomocí VBA

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave