- Először: Győződjön meg arról, hogy a makrók engedélyezve vannak
- Futtasson egy makrót a makrólistából
- Futtasson makrót egy billentyűparancs segítségével
- Futtasson makrót a VB szerkesztőből
- Futtasson makrót gomb vagy alakzat használatával
- Makró automatikus futtatása a VBA események használatával
- Állítsa le a futó makrót
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
