Excel - käivitage makro, kui üksus on rippmenüüst valitud

Microsoft Office on kaubanduslik Office'i tarkvara koos organiseeritud serverite, teenuste ja töölaua rakendustega Windows ja Mac OS X operatsioonisüsteemidele. See Office'i tarkvara sisaldab rakendust, mida nimetatakse Microsoft Exceliks, mis on kaubandusliku arvutustabeli rakendus, mis sisaldab makro programmeerimist, arvutusi jne. Makro on Excelis mitmeid juhiseid, mis täidavad konkreetse ülesande. Kui soovite teatud ülesande korduvalt täita, saate selle ülesande makro abil automatiseerida. Rippmenüü võimaldab andmeid sisestada arvutustabelisse eelnevalt määratud kirjete loendist. See muudab andmete sisestamise lihtsamaks ja piirdub andmete sisestamise positsioonide arvuga. Rippmenüüst saab iga valiku jaoks käivitada erineva makro.

Probleem

Mul on õnnestunud luua makro, mis täidab A-veerus oleva lahtriga kuupäeva ja lahtri B-veerus koos ajaga (suhteliste viidetega, nii et see teeb seda mis tahes rea kohale) ja on kutsunud see datetimeentry (see on moodul)

 Sub datetimeentry () '' datetimeentry Macro '' ActiveCell.Value = Kuupäev ActiveCell.Offset (0, 1) .Range ("A1"). Valige ActiveCell.Value = Time ActiveCell.Offset (0, 2) .Range ("A1 "). Valige End Sub 
  • Olen loonud ka veerus C rippmenüü, et valida. Mida ma tahan teha, on see:
  • Ma tahan makro käivitada, kui olen valinud rippmenüüst midagi. See makro peaks töötama samal real kui see, mida ma seda valisin.

st: kui valin lahtrisse c1156 rippmenüüst välja, kui ma tahan, et makro käivitaks ja sisestaksite kuupäeva A1156 ja kellaaja B1156-sse, siis hüpata lahtrisse D1156, et sisestada väärtus.

Lahendus

Esiteks lubage mul öelda, et ebaõnnestumine on väga kehtiv valik: P

Peate selle funktsiooni määratlema:

Privaatne alltööleht_Muuda (ByVal Target as Range)

Lõpeta alam

Oletame, et leht, millest me räägime, on leht1

  • Nii avage VBE ja topeltklõpsake lehel1 projektiuurijal
  • Kleepige see rutiin ja lugege koodis olevaid kommentaare tühja kohta

 Private Sub Worksheet_Change (ByVal Target As Range) 'siin 3 on veeru number 3, mis on veerg C, kui (Target.Column 3) Siis Exit Sub Application.EnableEvents = False thisrow = Target.Row Kui Target.Value = "" Siis "nüüd koodi saab kommenteerida, kui see ei ole mõistlik, aga idee on, kas C-veeru lahtrisse on kustutatud, tuleb ka vastav kuupäev ja kellaaeg kustutada. Rakud (nupp, "A") = "" Rakud (see, "B") = "" Muud rakud (see, "A") = Kuupäevakud (käsk, "B") = Aja lõpp, kui rakendus.EnableEvents = True End Sub 

Pange tähele, et

Täname rizvisa1 selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited