Ta vadnica bo pokazala, kako pridobiti in nastaviti ime delovnega zvezka v VBA.
Lahko dobimo ali nastavimo ime aktivnega delovnega zvezka v VBA ali preletimo skozi vse odprte delovne zvezke v Excelu in dobimo ali nastavimo ime vsakega od njih z zanko VBA.
Pridobite ime delovnega zvezka
Če želimo dobiti ime aktivnega delovnega zvezka, moramo uporabiti lastnost ime predmeta delovnih zvezkov.
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = ActiveWorkbook.NameMsgBox strWBNameEnd Sub |
Če bi zagnali zgornjo kodo, bi se na zaslonu prikazalo sporočilo z imenom aktivnega delovnega zvezka.
Če želite prečkati vse aktivne delovne zvezke in vrniti imena delovnih zvezkov v Excel, lahko zaženemo naslednjo kodo:
1234567 | Sub GetWorkbookNames ()Dim wb Kot delovni zvezekZa vsako wb v delovnih zvezkihActiveCell = wb.NameActiveCell.Offset (1, 0) .IzberiNaslednjiEnd Sub |
Zgornji primeri bodo vključevali razširitev datoteke (npr. Xlsx). Če razširitve ne želite vključiti, obstaja nekaj načinov, s katerimi lahko pridobimo samo ime datoteke delovnega zvezka.
Pridobite ime delovnega zvezka brez razširitve
S funkcijami LEFT in INSTR lahko odstranimo vse znake po piki v imenu datoteke:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Levo (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameEnd Sub |
S funkcijami LEFT in LEN lahko odstranimo 5 znakov s konca imena datoteke:
12345 | Sub GetWorkbookName ()Dim strWBName As StringstrWBName = Levo (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameEnd Sub |
Nastavitev imena delovnega zvezka
Če želite nastaviti ime delovnega zvezka v VBA, še vedno uporabljamo lastnost Name delovnega zvezka, vendar s to metodo ne moremo spremeniti imena aktivnega delovnega zvezka. To je posledica dejstva, da je aktivni delovni zvezek odprt in bo prišlo do napake pri dostopu do datoteke. Da bi to premagali, lahko datoteko shranimo z novim imenom in nato izbrišemo staro datoteko.
12345678910 | Javni podnaborWorkbookName ()Zatemni strPath kot nizZatemni strNewName As StringDim strOldName As StringstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Prosimo, vnesite novo ime za delovni zvezek")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameUbij strPath & "/" & strOldNameEnd Sub |
Za preimenovanje delovnega zvezka, ki ni odprt, lahko uporabimo metodo Name.
123 | Javni podimenuj delovni zvezek ()Poimenujte "C: \ Data \ MyFile.xlsx" Kot "C: \ Data \ MyNewFile.xlsx"End Sub |