A munkafüzet -objektum használata az Excel VBA -ban (megnyitás, bezárás, mentés, beállítás)

Ebben az oktatóanyagban bemutatom, hogyan kell dolgozni a munkafüzetekkel Excelben a VBA használatával.

Az Excelben a „Munkafüzet” olyan objektum, amely a „Munkafüzetek” gyűjtemény része. A munkafüzetben különböző objektumok találhatók, például munkalapok, diagramlapok, cellák és tartományok, diagramobjektumok, alakzatok stb.

A VBA segítségével sok mindent elvégezhet egy munkafüzet -objektummal - például megnyithat egy adott munkafüzetet, mentheti és bezárhatja a munkafüzeteket, új munkafüzeteket hozhat létre, módosíthatja a munkafüzet tulajdonságait stb.

Kezdjük hát el.

Az ebben az oktatóanyagban említett összes kódot el kell helyezni a Visual Basic Editorban. Lépjen a „Hová tegye a VBA -kódot” szakaszhoz, hogy megtudja, hogyan működik.

Ha érdekli a VBA egyszerű tanulása, nézze meg az enyémet Online Excel VBA képzés.

Munkafüzetre hivatkozás VBA használatával

Különböző módokon lehet hivatkozni egy munkafüzet objektumra a VBA -ban. A választott módszer attól függ, hogy mit szeretne elérni. Ebben a részben néhány példakóddal kitérek a munkafüzetre való hivatkozás különböző módjaira.

A munkafüzetek neveinek használata

Ha rendelkezik a hivatkozott munkafüzet pontos nevével, akkor használhatja a kódban szereplő nevet.

Kezdjük egy egyszerű példával.

Ha két munkafüzet van nyitva, és szeretné aktiválni a munkafüzetet - Examples.xlsx névvel, akkor használja az alábbi kódot:

Sub ActivateWorkbook () Munkafüzetek ("Examples.xlsx"). Aktiválja End Sub

Ne feledje, hogy a fájl nevét a kiterjesztéssel együtt kell használni, ha a fájl mentésre került. Ha nem mentette el, akkor a nevet fájlkiterjesztés nélkül is használhatja.

Ha nem tudja, milyen nevet használjon, kérjen segítséget a Project Explorer -től.

Ha aktiválni szeretné a munkafüzetet, és kiválaszt egy adott cellát a munkafüzet munkalapján, meg kell adnia a cella teljes címét (beleértve a munkafüzetet és a munkalap nevét).

Al ActivateWorkbook () Munkafüzetek ("Examples.xlsx"). Munkalapok ("Sheet1"). Tartomány aktiválása ("A1")

A fenti kód először aktiválja az 1. lapot a Példák.xlsx munkafüzetben, majd kiválasztja a lap A1 celláját.

Gyakran látni fog egy kódot, ahol hivatkozás történik egy munkalapra vagy cellára/tartományra a munkafüzetre való hivatkozás nélkül. Ez akkor fordul elő, ha ugyanazon munkafüzet munkalapjára/tartományaira hivatkozik, amely tartalmazza a kódot, és egyben az aktív munkafüzet is. Bizonyos esetekben azonban meg kell adnia a munkafüzetet a kód működésének biztosítása érdekében (erről bővebben a ThisWorkbook részben).

Indexszámok használata

A munkafüzetekre hivatkozhat az indexszámuk alapján is.

Például, ha három munkafüzet van nyitva, akkor a következő kód megjeleníti a három munkafüzet nevét egy üzenetmezőben (egyenként).

Sub WorkbookName () MsgBox munkafüzetek (1). Name MsgBox Workbooks (2). Name MsgBox Workbooks (3). Name End Sub

A fenti kód az MsgBox -ot használja - ez egy olyan funkció, amely egy üzenetdobozt jelenít meg a megadott szöveggel/értékkel (ami ebben az esetben a munkafüzet neve).

Az egyik baj, amit gyakran tapasztalok az indexszámok munkafüzetekkel történő használatakor, hogy soha nem lehet tudni, melyik az első munkafüzet, és melyik a második stb. Az biztos, hogy futtatnia kell a fenti kódot, vagy valami hasonlót a nyitott munkafüzetek ciklusához, és ismernie kell az indexszámukat.

Az Excel az elsőként megnyitott munkafüzetet úgy kezeli, hogy az index száma 1, a következő pedig 2 és így tovább.

E hátrány ellenére az indexszámok használata jól jöhet. Például, ha az összes nyitott munkafüzetet végig akarja tekinteni, és mindent el akar menteni, akkor használhatja az indexszámokat. Ebben az esetben, mivel azt szeretné, hogy ez minden munkafüzettel megtörténjen, nem aggódik az egyes indexszámok miatt.

Az alábbi kód végigmegy az összes nyitott munkafüzeten, és bezár mindent, kivéve azt a munkafüzetet, amely rendelkezik ezzel a VBA -kóddal.

Rész BezárásMunkafüzetek () Dim WbCount Integer

A fenti kód megszámolja a nyitott munkafüzetek számát, majd az összes munkafüzetet végigjárja a Minden egyes ciklus használatával.

Az IF feltételt használja annak ellenőrzésére, hogy a munkafüzet neve megegyezik -e a munkafüzet nevével, ahol a kód fut.

Ha nem egyezik, bezárja a munkafüzetet, és a következőre lép.

Ne feledje, hogy a ciklust WbCount -ról 1 -re futtattuk. Ez úgy történik, mint minden ciklus esetén, a nyitott munkafüzetek száma csökken.

Ez a munkakönyv részletesen a későbbi részben található.

Az ActiveWorkbook használata

Az ActiveWorkbook, ahogy a neve is sugallja, az aktív munkafüzetre utal.

Az alábbi kód megmutatja az aktív munkafüzet nevét.

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name End Sub

Ha a VBA segítségével másik munkafüzetet aktivál, a VBA ActiveWorkbook része ezt követően az aktivált munkafüzetre hivatkozik.

Íme egy példa erre.

Ha aktív munkafüzete van, és beilleszti a következő kódot, és futtatja azt, akkor először a munkafüzet nevét jeleníti meg, amely tartalmazza a kódot, majd a Példák.xlsx nevét (amelyet a kód aktivál).

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Munkafüzetek ("Examples.xlsx"). Aktiválja az MsgBox ActiveWorkbook.Name End Sub -t

Ne feledje, hogy amikor új munkafüzetet hoz létre a VBA használatával, akkor az újonnan létrehozott munkafüzet automatikusan az aktív munkafüzet lesz.

A ThisWorkbook használata

Ez a munkafüzet arra a munkafüzetre utal, ahol a kódot végrehajtják.

Minden munkafüzet része lenne egy ThisWorkbook objektum (látható a Project Explorerben).

A „ThisWorkbook” tárolhat rendszeres makrókat (hasonlóan azokhoz, amelyeket hozzáadunk a modulokhoz), valamint eseményfolyamatokat. Az esemény eljárás olyan esemény, amelyet egy esemény alapján indítanak el - például dupla kattintás egy cellára, munkafüzet mentése vagy munkalap aktiválása.

Az ebben a „ThisWorkbook” -ban mentett események a teljes munkafüzetben elérhetők lesznek, összehasonlítva a lapszintű eseményekkel, amelyek csak az adott lapokra korlátozódnak.

Például, ha duplán kattint a ThisWorkbook objektumra a Project Explorerben, és beilleszti az alábbi kódot, akkor a cella címe megjelenik, amikor duplán kattint a teljes munkafüzet bármelyik cellájára.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh as Object, ByVal Target as Range, Cancel as Boolean) MsgBox Target. Cím End Sub

Bár a ThisWorkbook fő feladata az eseményeljárás tárolása, használhatja azt a munkafüzetre való hivatkozásra is, ahol a kódot végrehajtják.

Az alábbi kód annak a munkafüzetnek a nevét adja vissza, amelyben a kódot végrehajtják.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name End Sub

A ThisWorkbook használatának előnye (az ActiveWorkbookhoz képest) az, hogy minden esetben ugyanarra a munkafüzetre hivatkozik (amelyik tartalmazza a kódot). Tehát ha VBA -kódot használ egy új munkafüzet hozzáadásához, az ActiveWorkbook megváltozik, de a ThisWorkbook továbbra is arra a kódra hivatkozik.

Új munkafüzet -objektum létrehozása

A következő kód új munkafüzetet hoz létre.

Sub CreateNewWorkbook () Workbooks. Add End Sub

Amikor új munkafüzetet ad hozzá, az lesz az aktív munkafüzet.

A következő kód hozzáad egy új munkafüzetet, majd megjeleníti a munkafüzet nevét (ez lenne az alapértelmezett Könyv1 típusnév).

Sub CreateNewWorkbook () munkafüzetek. Add MsgBox ActiveWorkbook. Name End Sub

Nyisson meg egy munkafüzetet a VBA segítségével

A VBA segítségével megnyithat egy adott munkafüzetet, ha ismeri a munkafüzet fájl elérési útját.

Az alábbi kód megnyitja a munkafüzetet - Examples.xlsx, amely a rendszerem Dokumentumok mappájában található.

Sub OpenWorkbook () Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Végrész

Abban az esetben, ha a fájl létezik az alapértelmezett mappában, amely a VBA alapértelmezés szerint az új fájlokat menti, akkor csak megadhatja a munkafüzet nevét - a teljes elérési út nélkül.

Sub OpenWorkbook () Workbooks.Open ("Examples.xlsx") End Sub

Ha a megnyitni kívánt munkafüzet nem létezik, akkor hibaüzenet jelenik meg.

A hiba elkerülése érdekében adjon hozzá néhány sort a kódjához, hogy először ellenőrizze, hogy a fájl létezik -e, és ha létezik, majd próbálja meg megnyitni.

Az alábbi kód ellenőrzi a fájl helyét, és ha nem létezik, akkor egyéni üzenetet jelenít meg (nem a hibaüzenetet):

Sub OpenWorkbook () Ha Dir ("C: \ Users \ sumit \ Documents \ Examples.xlsx") "" Akkor Workbooks.Open ("C: \ Users \ sumit \ Documents \ Examples.xlsx") Más MsgBox "A fájl nem nem létezik "End If End Sub

A Megnyitás párbeszédpanel segítségével is kiválaszthatja a megnyitni kívánt fájlt.

Sub OpenWorkbook () On Error Folytatás Következő Dim FilePath karakterláncként FilePath = Application.GetOpenFilename Workbooks. Open (FilePath) End Sub

A fenti kód megnyitja a Megnyitás párbeszédpanelt. Amikor kiválaszt egy megnyitni kívánt fájlt, az hozzárendeli a fájl elérési útját a FilePath változóhoz. Munkafüzetek. Az Open ezután a fájl elérési útját használja a fájl megnyitásához.

Ha a felhasználó nem nyit meg egy fájlt, és a Mégse gombra kattint, a FilePath hamis lesz. A hiba elkerülése érdekében ebben az esetben az „On Error Resume Next” utasítást használtuk.

Összefüggő: Tudjon meg mindent az Excel VBA hibakezeléséről

Munkafüzet mentése

Az aktív munkafüzet mentéséhez használja az alábbi kódot:

Sub SaveWorkbook () ActiveWorkbook.Save End Sub

Ez a kód azoknál a munkafüzeteknél működik, amelyeket már korábban mentett. Továbbá, mivel a munkafüzet tartalmazza a fenti makrót, ha nem mentette .xlsm (vagy .xls) fájlként, akkor a makrót elveszíti a következő megnyitásakor.

Ha először menti a munkafüzetet, akkor megjelenik az alábbi utasítás:

Az első mentéskor jobb a „Mentés” lehetőség használata.

Az alábbi kód az aktív munkafüzetet .xlsm fájlként menti az alapértelmezett helyre (ez a rendszer mappája a dokumentumban).

Sub SaveWorkbook () ActiveWorkbook.SaveAs Fájlnév: = "Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Ha azt szeretné, hogy a fájlt egy adott helyre mentse, ezt meg kell említenie a Fájlnév értékben. Az alábbi kód menti a fájlt az asztalon.

Sub SaveWorkbook () ActiveWorkbook.SaveAs Fájlnév: = "C: \ Users \ sumit \ Desktop \ Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Ha azt szeretné, hogy a felhasználó lehetőséget kapjon a fájl mentési helyének kiválasztására, hívhatja a Mentés párbeszédpanelt. Az alábbi kód a Mentés párbeszédpanelt mutatja, és lehetővé teszi a felhasználó számára a fájl mentési helyének kiválasztását.

Sub SaveWorkbook () Dim FilePath mint karakterlánc FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Fájlnév: = FilePath & ".xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Ne feledje, hogy a FileFormat: = xlOpenXMLWorkbookMacroEnabled helyett a FileFormat: = 52 parancsot is használhatja, ahol az 52 az xlOpenXMLWorkbookMacroEnabled kód.

Az összes nyitott munkafüzet mentése

Ha egynél több munkafüzet van nyitva, és el szeretné menteni az összes munkafüzetet, akkor használja az alábbi kódot:

Sub SaveAllWorkbooks () Dim wb munkafüzetként minden wb -hez a munkafüzetekben wb. Következő mentése wb End Sub

A fentiek mentik az összes munkafüzetet, beleértve azokat is, amelyeket soha nem mentettek el. A korábban nem mentett munkafüzetek az alapértelmezett helyre kerülnek mentésre.

Ha csak a korábban mentett munkafüzeteket szeretné menteni, akkor használja az alábbi kódot:

Sub SaveAllWorkbooks () Dim wb munkafüzetként minden wb -hez a munkafüzetekben Ha wb.Path "" Akkor wb.Menti a végét, ha a következő wb End Sub

Az összes munkafüzet mentése és bezárása

Ha be szeretné zárni az összes munkafüzetet, kivéve azt a munkafüzetet, amelyik tartalmazza az aktuális kódot, akkor használja az alábbi kódot:

Sub CloseandSaveWorkbooks () Dim wb munkafüzetként minden wb -hez a munkafüzetekben Ha wb.Name ThisWorkbook.Name Akkor wb.Close SaveChanges: = True End If Next wb End Sub

A fenti kód bezárja az összes munkafüzetet (kivéve a kódot tartalmazó munkafüzetet - ThisWorkbook). Ha ezekben a munkafüzetekben változások történnek, a módosítások mentésre kerülnek. Ha van olyan munkafüzet, amelyet soha nem mentett el, akkor a mentés másként párbeszédpanel jelenik meg.

A munkafüzet másolatának mentése (időbélyeggel)

Amikor összetett adatokkal és műszerfallal dolgozom az Excel munkafüzetekben, gyakran létrehozok különböző változatokat a munkafüzeteimből. Ez abban az esetben hasznos, ha valami baj van a jelenlegi munkafüzetemmel. Legalább másolatot szeretnék más néven elmenteni (és csak azt a munkát veszíteném el, amelyet másolat létrehozása után csináltam).

Itt található a VBA -kód, amely létrehozza a munkafüzet másolatát, és elmenti a megadott helyre.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Fájlnév: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" End Sub

A fenti kód minden makró futtatásakor elmenti a munkafüzet egy példányát.

Bár ez remekül működik, kényelmesebben érezném magam, ha más példányokat mentenék, amikor ezt a kódot futtatom. Ennek az az oka, hogy ha véletlenül hibát követek el, és futtatom ezt a makrót, az megmenti a munkát a hibákkal. És nem férhettem hozzá a munkához, mielőtt elkövettem a hibát.

Az ilyen helyzetek kezelésére használhatja az alábbi kódot, amely minden mentéskor új példányt ment a munkából. Ezenkívül dátumot és időbélyeget is hozzáad a munkafüzet nevének részeként. Ez segíthet nyomon követni minden hibáját, mivel soha nem veszíti el a korábban létrehozott biztonsági mentéseket.

Privát almunkafüzet_BeforeSave (ByVal SaveAsUI, mint Boolean, Mégsem, mint Boolean) ThisWorkbook.SaveCopyAs Fájlnév: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Most (), "dd-mm-yy-hh-mm-ss -AMPM ") &" .xlsm "End Sub

A fenti kód minden makró futtatásakor másolatot hoz létre, és dátum/időbélyeget ad hozzá a munkafüzet nevéhez.

Hozzon létre egy új munkafüzetet minden munkalaphoz

Bizonyos esetekben előfordulhat, hogy van egy munkafüzete, amely több munkalapot tartalmaz, és minden munkalaphoz szeretne létrehozni egy munkafüzetet.

Ez akkor fordulhat elő, ha havi/negyedéves jelentései egyetlen munkafüzetben vannak, és ezeket minden munkalapra egy munkafüzetre szeretné osztani.

Vagy, ha rendelkezik osztályon belüli jelentésekkel, és ezeket egyéni munkafüzetekre szeretné osztani, hogy elküldhesse ezeket az egyéni munkafüzeteket az osztályvezetőknek.

Itt található a kód, amely minden munkalaphoz létrehoz egy munkafüzetet, ugyanazt a nevet adja, mint a munkalap, és elmenti a megadott mappába.

Sub CreateWorkbookforWorksheets () Dim ws mint munkalap Dim wb mint munkafüzet minden ws -hez ebben a munkafüzetben.Worksheets Set wb = Workbooks.Add ws.Copy Before: = wb.Sheets (1) Application.DisplayAlerts = False wb.Sheets (2) .Delete Application.DisplayAlerts = Igaz wb.SaveAs "C: \ Users \ sumit \ Desktop \ Test \" & ws.Name & ".xlsx" wb.Zárás Következő ws End Sub

A fenti kódban két „ws” és „wb” változót használtunk.

A kód végigmegy minden munkalapon (a Minden egyes következő ciklus használatával), és létrehoz egy munkafüzetet hozzá. Ezenkívül a munkalap -objektum másolási módszerét használja a munkalap másolatának létrehozásához az új munkafüzetben.

Ne feledje, hogy a SET utasítással hozzárendeltem a „wb” változót minden új, a kód által létrehozott munkafüzethez.

Ezzel a technikával hozzárendelhet egy munkafüzet objektumot egy változóhoz. Erről a következő részben lesz szó.

A munkafüzet -objektum hozzárendelése egy változóhoz

A VBA -ban hozzárendelhet egy objektumot egy változóhoz, majd a változó segítségével hivatkozhat az objektumra.

Például az alábbi kódban a VBA segítségével új munkafüzetet adok hozzá, majd hozzárendelem a munkafüzetet a wb változóhoz. Ehhez a SET utasítást kell használnom.

Miután hozzárendeltem a munkafüzetet a változóhoz, a munkafüzet összes tulajdonsága elérhetővé válik a változó számára is.

Sub AssigntoVariable () Dim wb mint munkafüzetkészlet wb = Workbooks.Add wb.SaveAs Fájlnév: = "C: \ Users \ sumit \ Desktop \ Examples.xlsx" End Sub

Ne feledje, hogy a kód első lépése a „wb” deklarálása munkafüzet típusú változóként. Ez azt mondja a VBA -nak, hogy ez a változó tárolhatja a munkafüzet objektumot.

A következő utasítás a SET -et használja a változó hozzárendeléséhez az új munkafüzethez, amelyet hozzáadunk. Ha ez a hozzárendelés megtörtént, a wb változót használva menthetjük a munkafüzetet (vagy bármi mást tehetünk vele).

Lépés a nyitott munkafüzetekben

Láthattunk már néhány példakódot a fenti kódok között, amelyek a kódban hurkolást használtak.

Ebben a részben elmagyarázom a nyitott munkafüzetek VBA -val történő folytatásának különböző módjait.

Tegyük fel, hogy el akarja menteni és bezárni az összes nyitott munkafüzetet, kivéve azt, amelyikben kód van, akkor használhatja az alábbi kódot:

Sub CloseandSaveWorkbooks () Dim wb munkafüzetként minden wb -hez a munkafüzetekben Ha wb.Name ThisWorkbook.Name Akkor wb.Close SaveChanges: = True End If Next wb End Sub

A fenti kód a Minden egyes ciklushoz használja a munkafüzetek gyűjteményének minden munkafüzetét. Ehhez először a „wb” -t kell deklarálnunk a munkafüzet típusú változóként.

Minden ciklusciklusban minden munkafüzet nevét elemzik, és ha nem egyezik a kódot tartalmazó munkafüzet nevével, akkor a tartalom mentése után bezáródik.

Ugyanezt el lehet érni egy másik hurokkal az alábbiak szerint:

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 if Workbooks (i). Name thisWorkbook.Name then Workbooks (i). Close SaveChanges: = True End If Next i End Sub

A fenti kód a Következő ciklus segítségével bezárja az összes munkafüzetet, kivéve azt, amelyben a kód szerepel. Ebben az esetben nem kell deklarálnunk egy munkafüzet változót, hanem számolnunk kell a nyitott munkafüzetek teljes számát. Ha megvan a szám, akkor a Következő ciklus segítségével átnézzük az egyes munkafüzeteket. Ezenkívül ebben az esetben az indexszámot használjuk a munkafüzetekre való hivatkozáshoz.

Ne feledje, hogy a fenti kódban a WbCount -ról 1 -re lépünk a -1 lépéssel. Erre szükség van, mivel minden ciklus esetén a munkafüzet bezárul, és a munkafüzetek száma 1 -gyel csökken.

Hiba a munkafüzet objektummal való munkavégzés során („9” futásidejű hiba)

Az egyik leggyakoribb hiba, amellyel a munkafüzetekkel való munka során találkozhat: „Futásidejű hiba„ 9 ” - Előfizetési tartomány a tartományon kívül.

Általában a VBA hibák nem túl informatívak, és gyakran rábízják a hibát.

Íme néhány lehetséges ok, ami ezt a hibát okozhatja:

  • A munkafüzet, amelyhez megpróbál hozzáférni, nem létezik. Például, ha az ötödik munkafüzetet próbálom elérni a Munkafüzetek (5) használatával, és csak 4 munkafüzet van nyitva, akkor ezt a hibát fogom kapni.
  • Ha rossz nevet használ a munkafüzethez való hivatkozáshoz. Például, ha a munkafüzet neve Példák.xlsx, és használja a Példa.xlsx fájlt. akkor megmutatja ezt a hibát.
  • Ha nem mentett el munkafüzetet, és használja a bővítményt, akkor ezt a hibát kapja. Például, ha a munkafüzet neve Book1, és a Book1.xlsx nevet használja mentés nélkül, akkor ezt a hibát fogja kapni.
  • A hozzáférni kívánt munkafüzet bezárult.

Az összes nyitott munkafüzet listájának beszerzése

Ha meg szeretné tekinteni az aktuális munkafüzet összes nyitott munkafüzetének listáját (a munkafüzetet, ahol a kódot futtatja), akkor használja az alábbi kódot:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activate For i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Érték = Munkafüzetek (i) .Name Next i End Sub

A fenti kód hozzáad egy új munkalapot, majd felsorolja az összes megnyitott munkafüzet nevét.

Ha meg szeretné kapni a fájl elérési útját is, használhatja az alábbi kódot:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activate For i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Érték = Munkafüzetek (i). Útvonal & "\" & Munkafüzetek (i) .Name Next i End Sub

Nyissa meg a megadott munkafüzetet a Cella dupla kattintásával

Ha rendelkezik Excel-munkafüzetek fájlútvonalainak listájával, akkor az alábbi kód használatával egyszerűen kattintson duplán a cellára a fájl elérési útjával, és megnyílik az adott munkafüzet.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh as Object, ByVal Target as Range, Cancel as Boolean) Munkafüzetek. Nyissa meg a Target.Value végét

Ezt a kódot a ThisWorkbook kódablakban kell elhelyezni.

Ezt csináld meg:

  • Kattintson duplán a ThisWorkbook objektumra a projektfelfedezőben. Vegye figyelembe, hogy a ThisWorkbook objektumnak abban a munkafüzetben kell lennie, ahol ezt a funkciót használni szeretné.
  • Másolja és illessze be a fenti kódot.

Most, ha rendelkezik a megnyitni kívánt fájlok pontos elérési útjával, ezt egyszerűen megteheti, ha duplán kattint a fájl elérési útjára, és a VBA azonnal megnyitja azt a munkafüzetet.

Hová tegye a VBA kódot

Kíváncsi vagy, hova kerül a VBA -kód az Excel -munkafüzetben?

Az Excel rendelkezik VBA háttérprogrammal, amelyet VBA -szerkesztőnek hívnak. Be kell másolnia és beillesztenie a kódot a VB Editor modul ablakába.

Ehhez tegye a következő lépéseket:

  1. Lépjen a Fejlesztő fülre.
  2. Kattintson a Visual Basic lehetőségre. Ez megnyitja a VB szerkesztőt a háttérben.
  3. A VB szerkesztő Project Explorer ablaktáblájában kattintson jobb gombbal a munkafüzet bármely olyan objektumára, amelybe be szeretné illeszteni a kódot. Ha nem látja a Project Explorer programot, lépjen a Nézet fülre, és kattintson a Project Explorer elemre.
  4. Lépjen a Beszúrás elemre, és kattintson a Modul elemre. Ezzel beszúr egy modulobjektumot a munkafüzetébe.
  5. Másolja ki és illessze be a kódot a modul ablakába.

A következő Excel VBA oktatóanyagok is tetszhetnek:

  • Makró rögzítése Excelben.
  • Felhasználó által definiált függvény létrehozása Excelben.
  • Bővítmény létrehozása és használata Excelben.
  • A makrók visszaállítása a személyes makró munkafüzetbe helyezésével.
  • Szerezze be a fájlnevek listáját az Excel mappájából (VBA -val és anélkül).
  • Az Excel VBA InStr funkciójának használata (gyakorlati PÉLDÁKKAL).
  • Az adatok rendezése Excelben a VBA használatával (lépésről lépésre).

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

wave wave wave wave wave