Ez az oktatóanyag bemutatja, hogyan szerezheti be és állíthatja be a munkafüzet nevét a VBA -ban.
Megkaphatjuk vagy beállíthatjuk az aktív munkafüzet nevét a VBA -ban, vagy végiglapozhatjuk az Excel összes nyitott munkafüzetét, és mindegyik nevét beolvashatjuk vagy beállíthatjuk egy VBA hurok segítségével.
Szerezd meg a munkafüzet nevét
Az aktív munkafüzet nevének lekéréséhez a munkafüzet -objektum name tulajdonságát kell használnunk.
12345 | GetWorkbookName () alrészDim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameEnd Sub |
Ha futtatnánk a fenti kódot, egy üzenetdoboz jelenik meg a képernyőn az Active munkafüzet nevével.
Az összes aktív munkafüzet áttekintéséhez és a munkafüzetek nevének visszaállításához az Excel programhoz futtathatjuk a következő kódot:
1234567 | Sub GetWorkbookNames ()Dim wb Mint munkafüzetMinden wb -hez a munkafüzetekbenActiveCell = wb.NameActiveCell.Offset (1, 0). Válassza kiKövetkezőEnd Sub |
A fenti példák tartalmazzák a fájl kiterjesztését (pl. Xlsx). Ha nem kívánja beilleszteni a kiterjesztést, néhány módszerrel csak a munkafüzet fájlnevét kaphatjuk meg.
Szerezze be a munkafüzet nevét kiterjesztés nélkül
A BAL és az INSTR függvények segítségével eltávolíthatjuk a karaktereket a fájlnévben szereplő időszak után:
12345 | GetWorkbookName () alrészDim strWBName As StringstrWBName = Bal (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameEnd Sub |
A LEFT és LEN funkciók segítségével eltávolíthatunk 5 karaktert a fájlnév végéről:
12345 | GetWorkbookName () alrészDim strWBName As StringstrWBName = Bal (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameEnd Sub |
A munkafüzet nevének beállítása
A munkafüzet nevének beállításához a VBA -ban továbbra is a munkafüzet Név tulajdonságát használjuk, azonban ezzel a módszerrel nem módosíthatjuk az aktív munkafüzet nevét. Ennek oka az, hogy az Aktív munkafüzet nyitva van, és fájlhozzáférési hiba lép fel. Ennek kiküszöbölésére menthetjük a fájlt új névvel, majd törölhetjük a régi fájlt.
12345678910 | Nyilvános alhalmaz MunkafüzetNév ()Dim strPath karakterlánckéntDim strNewName Mint StringDim strOldName Mint karakterláncstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Kérjük, adja meg a munkafüzet új nevét")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameÖld meg az strPath & "/" & strOldName nevetEnd Sub |
A nem megnyitott munkafüzet átnevezéséhez használhatjuk a Név metódust.
123 | Nyilvános alnevezés Munkafüzet ()A "C: \ Data \ MyFile.xlsx" név "C: \ Data \ MyNewFile.xlsx"End Sub |