Excel - Spustí makro, keď je položka vybratá z rozbaľovacieho zoznamu

Microsoft Office je komerčný kancelársky softvér s organizovanými servermi, službami a desktopovými aplikáciami pre operačné systémy Windows a Mac OS X. Tento kancelársky softvér obsahuje aplikáciu s názvom Microsoft Excel, ktorá je komerčnou tabuľkovou aplikáciou s programovaním makier, výpočtami atď. Makro je rad inštrukcií v programe Excel, ktorý vykonáva konkrétnu úlohu. Ak chcete vykonať určitú úlohu opakovane, môžete túto úlohu automatizovať pomocou makra. Rozbaľovací zoznam umožňuje zadať údaje do tabuľky z prednastaveného zoznamu položiek. Uľahčuje zadávanie údajov a obmedzuje počet pozícií pre zadávanie údajov. Môžete spustiť iné makro pre každý výber v rozbaľovacom zozname.

Problém

Bol som schopný vytvoriť makro, ktoré bude naplniť bunku v stĺpci A s dátumom a bunkou v stĺpci B s časom (s relatívnymi odkazmi, takže to urobí na ľubovoľnom riadku, v ktorom je kurzor) a zavolali to datetimeentry (je to modul)

 Sub datetimeentry () '' datetimeentry Makro '' ActiveCell.Value = Dátum ActiveCell.Offset (0, 1) .Range ("A1") Vyberte ActiveCell.Value = Čas ActiveCell.Offset (0, 2) .Range ("A1 Vyberte End Sub 
  • Tiež som vytvoril rozbaľovací zoznam v stĺpci C na výber. Chcem to urobiť:
  • Chcem, aby sa makro spustilo po vybratí niečoho z rozbaľovacieho zoznamu. Toto makro by malo bežať na rovnakom riadku ako bunka, z ktorej som ho vybral.

tj: ak vyberiem z rozbaľovacieho zoznamu v bunke c1156, než chcem, aby makro spustilo a vložte dátum do A1156 a času v B1156 potom preskočte na bunku D1156, aby som zadal hodnotu v.

Riešenie

No najprv mi dovoľte povedať, zlyhanie je veľmi platná možnosť: P

Túto funkciu musíte definovať:

Private Sub Worksheet_Change (Cieľový cieľ ByVal ako rozsah)

End Sub

Povedzme, že list, o ktorom hovoríme, je list1

  • Takže otvorte VBE a dvakrát kliknite na list1 v prieskumníkovi projektu
  • Vložte túto rutinu a prečítajte si poznámky v kóde o prázdnom kóde

 Private Sub Worksheet_Change (ByVal Target As Range) 'tu 3 je číslo stĺpca 3, ktorý je stĺpcom C Ak (Target.Column 3) Potom Exit Sub Application.EnableEvents = False thisrow = Target.Row Ak Target.Value = "" Potom " kód môžete komentovať, ak to nedáva zmysel, ale ide o to, že bunka v stĺpci C bola vymazaná, „zodpovedajúci dátum a čas by sa mali tiež vymazať. Bunky (thisrow, " A ") =" "Bunky (thisrow, "B") = "" Else Cells (thisrow, "A") = Dátum Cells (thisrow, "B") = Čas Koniec Ak Application.EnableEvents = True End Sub 

Poznač si to

Vďaka rizvisa1 za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy