Makró futtatása Excelben

Bár a makró futtatása Excelben nem nehéz, rengeteg módja van azok futtatására. Bizonyos módok megkönnyítik a makrók használatát, míg más módok teljesen megváltoztathatják a felhasználó interakcióját a munkafüzettel. Ebben a cikkben bemutatunk néhány nyilvánvaló módot a makrók futtatására, mint például a makrólista és a gombvezérlők, valamint néhány homályosabb módot, például a VB szerkesztőt és az eseményeket.

Először: Győződjön meg arról, hogy a makrók engedélyezve vannak

Az Excel biztonsági funkciói alapértelmezés szerint letiltják a makrókat. Amikor megnyit egy makró-képes munkafüzetet, a felhasználók általában megkérdezik, hogy engedélyezni szeretnék-e a makrókat.

Ha nem tudja futtatni a makrókat, kövesse az alábbi utasításokat:

  • Mentse el a munkafüzetet
  • Zárja be a munkafüzetet, majd nyissa meg újra
  • Amikor a munkafüzet betöltődik, megjelenik a Biztonsági figyelmeztetés felszólítás (az alábbi képen). Kattintson Tartalom engedélyezése.

Futtasson egy makrót a makrólistából

A makrók listája a Nézet lapon érhető el. A lista megtekintéséhez:

  • Válaszd ki a Kilátás fülre
  • Kattintson a feliratos gombra Makrók hogy megjelenítse a makrólistát

  • Válassza ki a listából a futtatni kívánt makrót, majd kattintson a gombra Fuss gomb

A makrólistát a gomb megnyomásával bármikor megjelenítheti ALT+F8.

Futtasson makrót egy billentyűparancs segítségével

A gyakran használt makrókhoz billentyűparancsot rendelhet, például CTRL+vagy CTRL+SHIFT+. Ezt csináld meg:

  • Nyissa meg a makrólistát (Kilátás > Makrókvagy ALT+F8)
  • Válassza ki azt a makrót, amelyre parancsikont szeretne alkalmazni
  • Kattintson Lehetőségek… megmutatni a Makró beállítások al-párbeszédablak

  • Alatti szövegdobozban Gyorsbillentyű, írjon be egyetlen betűt, majd kattintson a gombra rendben. Ha a SHIFT billentyűt lenyomva tartja a betű beírása közben, a doboz melletti címke a SHIFT billentyűt jeleníti meg a parancsikon részeként

JEGYZET: erősen ajánlott a SHIFT használata a gyorsbillentyűk létrehozásakor! Az Excel CTRL+ parancsikonokat használ magának, pl. CTRL+C a másoláshoz, vagy a CTRL+V a mentéshez. Ha ezekkel vagy más Excel-parancsikonokkal hoz létre makróparancsot, felülírja az Excel parancsikont mindaddig, amíg újra hozzá nem rendeli a makró parancsikonját.

Futtasson makrót a VB szerkesztőből

A makrók a VB szerkesztőből is futtathatók. A VB szerkesztő lehetővé teszi a makró kódjának megtekintését és a kívánt módosítások elvégzését, mielőtt futtatná.

Makró futtatása a VB szerkesztőben:

  • Nyissa meg a VB szerkesztőt (Fejlesztő fül> Visual Basic vagy ALT+F11)

  • Ban,-ben Projekt ablakban kattintson duplán a tesztelni kívánt makrót tartalmazó modulra
  • A modul kódablakában, helyezze a kurzort bárhol a makró kódján a „Sub” és „End Sub” között
  • Kattints a Fuss gombot az eszköztáron, vagy nyomja meg az F5 billentyűparancsot

Futtasson makrót gomb vagy alakzat használatával

Gyakran hasznos, ha van egy vezérlőelem a munkalapon, amelyre a felhasználó rákattintva futtathat makrót, például egy gombvezérlőt vagy egy alakzatot. Ez sokkal gyorsabb a végfelhasználók számára, mint a makrólisták megnyitása vagy a makrókódok ásása a VB Editorban.

A kattintható gomb vagy alakzat létrehozásáról itt talál információkat: Gomb hozzáadása és makró hozzárendelése az Excelben.

Makró automatikus futtatása a VBA események használatával

Lehetséges makró futtatása, ha valami történik az Excelben - például amikor megnyit egy munkafüzetet, vagy ha módosítja a cella értékét. Ezeket hívják Események, és írhat nekik VBA -kódot makrók hívásához vagy más műveletek végrehajtásához.

Egy esemény kódjának írásához a VB szerkesztőt kell használnia. Például a munkafüzet eseményeinek megtekintéséhez:

  • Nyissa meg a VB szerkesztőt (ALT+F11)
  • Kattintson duplán a Ez a munkakönyv objektumot a VB szerkesztőben Projekt ablak
  • Válassza a „Munkafüzet” lehetőséget a kódablak bal felső sarkában található legördülő menüből
  • Az események listájának megtekintéséhez kattintson a jobb oldali legördülő menüre

Az alábbiakban egy kicsi, de hasznos példa az Excel eseményekből, amelyekből makrókat futtathat.

Workbook_Open ()

A Workbook_Open () esemény a munkafüzet megnyitásakor aktiválódik. Ha a biztonsági figyelmeztetést a munkafüzet megnyitása után kapja, ez az esemény a „Tartalom engedélyezése” gombra kattintás után indul el.

12345 Privát almunkafüzet_nyitva ()MsgBox "Megnyílt a munkafüzet!"End Sub

Workbook_BeforeClose (Mégse logikai értékként)

A Workbook_BeforeClose () aktiválódik, amikor a felhasználó megpróbálja bezárni a munkafüzetet. Ez minden ellenőrzés előtt megtörténik, hogy a munkafüzetet el kell -e menteni.

Az Megszünteti paraméter True értékre állítható, hogy leállítsa a munkafüzet zárását.

123456789 Privát almunkafüzet_BeforeClose (Mégse logikai értékként)Ha MsgBox ("Biztos benne?", VbYesNo + vbQuestion, "Bezárás") = vbNo AkkorMégse = IgazVége HaEnd Sub

Worksheet_Change (ByVal Target tartományként)

A Worksheet_Change () akkor aktiválódik, amikor egy cella értéke megváltozik - legyen az makró, másolás/beillesztés vagy külső hivatkozás. Nem indul el, ha egy értéket egy képlettel újraszámítanak.

Az Cél paraméter azokat a cellákat jelöli, amelyek értéke megváltozott.

Ha módosítja az esemény többi cellájának értékét, az esemény újra aktiválódik. Ez végtelen ciklushoz vezethet. Ha módosítani kell a cellaértékeket az esemény kiváltása nélkül, fontolja meg a beállítást Application.EnableEvents nak nek Hamis először, majd állítsa vissza Igaz az esemény eljárás végén.

123456789 Privát almunkalap_csere (ByVal -cél tartományként)MsgBox "Cella megváltozott:" & Target.AddressApplication.EnableEvents = HamisTartomány ("A2"). Érték = Tartomány ("A2"). Érték + Target.Cells.CountApplication.EnableEvents = IgazEnd Sub

Worksheet_SelectionChange (ByVal Target as Range)

Ez az esemény akkor aktiválódik, amikor különböző cellákat választ ki a célzókerettel. A Target paraméter a kijelölt új cellákat jelöli.

Ezt az eseményt kóddal is kiválthatja, azaz „Tartomány („ A1 ”). Válassza”. A Worksheet_Change () -hoz hasonlóan óvatosan kell kiválasztani az esemény többi celláját, mivel végtelen ciklusokat okozhat. Használja az Application.EnableEvents alkalmazást.

123456789 Privát almunkalap_SelectionChange (ByVal Target as Range)Ha Target.Address = "$ A $ 1" AkkorMsgBox "Kurzor alaphelyzetben."Vége HaEnd Sub

Állítsa le a futó makrót

Egy futó makró megszakítható a megnyomásával KILÉPÉS vagy CTRL+BREAK. Alapértelmezés szerint a megszakított makró a következő párbeszédablakot jeleníti meg:

Kattintás Vége közben leállítja a makrót Folytatni folytatni fogja. Kattintás Hibakeresés megnyitja a makrót a VB szerkesztőben, és összpontosítja a kódot, amelyen a végrehajtás szünetel. (A VB szerkesztőben leállíthatja vagy folytathatja a makrót az eszköztár Futtatás vagy Vége gombokkal.)

Application.EnableCancelKey

Az ESC vagy a CTRL+BREAK gombbal letilthatja a makró leállítását Application.EnableCancelKey ingatlan. Ennek a tulajdonságnak három lehetséges értéke van:

  • xlMegszakítás - ez az alapértelmezett érték, amely miatt az Excel megjeleníti a fenti párbeszédpanelt
  • xlKikapcsolva - megszünteti a futó makró leállításának lehetőségét
  • xlErrorHandler - megszakítási kísérlet esetén hiba lép fel, amely kódban kezelhető

Amikor a kódfuttatás leáll, az Excel mindig visszaállítja az Application.EnableCancelKey értékét xlMegszakítás.

Az ingatlan használatának jó oka a biztonság. Például, ha rendelkezett egy makróval, amely ideiglenesen nem védte a munkafüzet egyes részeit, a felhasználó potenciálisan leállíthatja a makrót közvetlenül a védelem megszüntetése után, és hozzáférhet olyan tartalmakhoz, amelyekre nem szánta őket. Az Application.EnableCancelKey beállításával teljesen letilthatja ezek képességét, vagy megszakításukat kecsesen kezelheti a munkafüzetet újra védő Hibakezelővel.

1234567891011 Rész UpdateBaseData (ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy TargetTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptEnd Sub

Az Excel kényszerített bezárása a Windows Feladatkezelővel

Ha a makró „lefagyott”, vagy az Excel túl elfoglalt ahhoz, hogy elismerje a megszakítási kísérletet, előfordulhat, hogy kényszerítve kell bezárnia magát az Excel programot a Windows Feladatkezelő. (MEGJEGYZÉS: ha ezt teszi, elveszítheti a nem mentett munkát, és a munkafüzet automatikus helyreállítási verziójára kell hagyatkoznia.)

  • Nyissa meg a Feladatkezelőt közvetlenül a gombbal CTRL+SHIFT+ESC
  • Válaszd ki a "Folyamatok”Fülre
  • Bontsa ki a „Microsoft Excel” elemet az összes munkafüzet megjelenítéséhez
  • Válassza ki a bezárni kívánt munkafüzetet, majd kattintson a gombra Utolsó feladat a jobb alsó sarokban

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave