Ievietojiet datuma un laika zīmogu ar VBA

Anonim

Datuma laika ievietošana programmā Excel, izmantojot VBA, ir tikpat vienkārša kā formulas ierakstīšana šūnā.

VBA laika zīmoga kods ir šāds:

Diapazona (“A1”) vērtība = Formāts (tagad "mm/dd/gggg HH: mm: ss")

Šis kods parādīs pašreizējo datumu un laiku šūnā A1. Un jā, tā tas ir. tas ir pabeigts.

Funkcija “Tagad” atgriež pašreizējo datumu un laiku, un funkcija “Formatēt” formatē izvadi formātā “mm/dd/gggg HH: mm: ss”.

Parādiet datumu un laiku, kad tiek veiktas izmaiņas, izmantojot VBA.

Pieņemsim, ka esat sagatavojis lapu. Šajā lapā vēlaties, lai B slejā tiktu parādīts laiks, kad kāds veic ierakstu A slejā.

Tagad mums ir nepieciešams VBA laika zīmoga kods, kas darbojas katru reizi, kad tiek veiktas izmaiņas A slejā.

Zemāk esošais kods ļauj viegli paveikt darbu.

Palaist makro, kad tiek veiktas izmaiņas (darblapas maiņas notikumu apstrādātājs)

Privāta apakšdarblapa_maiņa (ByVal mērķis kā diapazons) Ja nešķērso (mērķis, diapazons ("A: A")) Vai nekas nav pēc tam .Pārbīde (0, 1). Vērtība = Formāts (Tagad, "mm/dd/gggg HH: mm: ss") Beigas Ja beigas Ja beigas Sub 

Lai palaistu šo kodu, atveriet VBA un veiciet dubultklikšķi uz lapas projekta logā, kurā vēlaties parādīt laika zīmogu.

Tagad mums ir jāizmanto VBA notikumu apstrādātājs, jo mēs vēlamies palaist savu kodu, lai tas darbotos katru reizi, kad tiek veiktas izmaiņas.

Nolaižamajā izvēlnē virs koda atlasiet Darblapa.

Tagad blakus darblapas nolaižamajai izvēlnei redzat vēl vienu nolaižamo izvēlni. Tajā ir daudz notikumu apstrādātāju. Pagaidām izvēlieties “mainīt”.

Tagad nokopējiet iepriekš minēto kodu šeit.

Un tas tiek darīts. Atgriezieties savā lapā un pārbaudiet to.

Koda skaidrojums:

    • Kods tiek uzrakstīts uz 1. lapas, veicot dubultklikšķi uz tā. Tas nozīmē, ka jūsu kods pieder tikai šai lapai.
    • Lai aktivizētu VBA kodu, mēs izmantojām “Darblapas” notikumu apstrādātāju “Mainīt”.
    • Privāta apakšdarblapas maiņa (ByVal mērķis kā diapazons)

      Šis ir izmaiņu notikumu apstrādātāja fiksētais un noklusējuma apakšprogrammas nosaukums.

    • Mēs vēlamies, lai mūsu kods darbotos, un izmaiņas tiek veiktas tikai A slejā.
    • Ja nav krustošanās (mērķis, diapazons ("A: A")), tad nekas nav

      Šī rinda pārbauda, ​​vai mainītā šūna ir A slejā.

    • Tagad, ja iepriekš minētā rinda atgriež vērtību True, šīs rindas tiek izpildītas
Par kļūdu Atsākt nākamo Ja Target.Value = "" ThenTarget.Offset (0, 1) = "" ElseTarget.Offset (0, 1) .Value = Formāts (Tagad, "mm/dd/gggg HH: mm: ss")

Pirmā rinda ignorē kļūdu pop un palaiž šīs divas rindiņas. Ja izlaidāt On Kļūda Atsākt dzēšot vērtību A slejā, redzēsit kļūdu.

Ja Target.Value = "" Tad

:- Šī rinda pārbauda, ​​vai A slejas šūna ir tukša. Ja jā, tad

Target.Offset (0, 1) = ""

:- Šī rinda izdzēš blakus esošās šūnas vērtību.

Un ja nepatiesa

 Citādi Target.Offset (0, 1). Vērtība = Formāts (Tagad, "mm/dd/gggg HH: mm: ss")

:- Šajā rindā blakus kolonnai A tiek ievadīts pašreizējais laiks un datums.

  • Un pēdējās trīs rindas vienkārši aizver attiecīgo bloku. Un tas ir izdarīts. Tagad jums ir lapa, kurā norādīts precīzs izmaiņu laiks, kas veikts A slejas šūnā.

Iespējams, pamanījāt, ka nolaižamajā sarakstā ir vairāki notikumu apstrādātāji. Spēlējiet apkārt. Mēģiniet saprast, kā darbojas katrs notikumu apstrādātājs. Un, ja rodas kādas grūtības, pierakstiet to komentāru sadaļā.

Ievietojiet datuma un laika zīmogu ar VBA