VBA -arbeidsboknavn (Get, Set, uten utvidelse)

Denne opplæringen vil demonstrere hvordan du får og angir arbeidsboknavnet i VBA.

Vi kan få eller angi navnet på den aktive arbeidsboken i VBA, eller bla gjennom alle de åpne arbeidsbøkene i Excel, og få eller angi navnet på hver av dem ved hjelp av en VBA -løkke.

Få navn på arbeidsbok

For å få navnet på den aktive arbeidsboken, må vi bruke navnetegenskapen til arbeidsbokobjektet.

12345 Sub GetWorkbookName ()Dim strWBName Som strengstrWBName = ActiveWorkbook.NameMsgBox strWBNameSlutt Sub

Hvis vi skulle kjøre koden ovenfor, ville vi se en meldingsboks vises på skjermen med navnet på den aktive arbeidsboken.

For å gå gjennom alle de aktive arbeidsbøkene og returnere navnene på arbeidsbøkene til Excel, kan vi kjøre følgende kode:

1234567 Sub GetWorkbookNames ()Dim wb Som arbeidsbokFor hver wb i arbeidsbøkerActiveCell = wb.NameActiveCell.Offset (1, 0) .VelgNesteSlutt Sub

Eksemplene ovenfor vil inkludere filtypen (f.eks. Xlsx). Hvis du ikke vil inkludere utvidelsen, er det noen få metoder vi kan bruke for å skaffe bare filnavnet til arbeidsboken.

Få navn på arbeidsbok uten utvidelse

Vi kan bruke funksjonene VENSTRE og INSTR for å fjerne tegn etter perioden i filnavnet:

12345 Sub GetWorkbookName ()Dim strWBName Som strengstrWBName = Venstre (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameSlutt Sub

Vi kan bruke LEFT og LEN -funksjonene til å fjerne 5 tegn fra slutten av filnavnet:

12345 Sub GetWorkbookName ()Dim strWBName Som strengstrWBName = Venstre (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameSlutt Sub

Angi navn på arbeidsbok

For å angi navnet på en arbeidsbok i VBA bruker vi fremdeles navnegenskapen til arbeidsboken, men vi kan ikke bruke denne metoden til å endre navnet på den aktive arbeidsboken. Dette skyldes det faktum at den aktive arbeidsboken er åpen, og det vil oppstå en filtilgangsfeil. For å overvinne dette kan vi lagre filen med et nytt navn og deretter slette den gamle filen.

12345678910 Public Sub SetWorkbookName ()Dim strPath As StringDim strNewName As StringDim strOldName Som strengstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Skriv inn nytt navn for arbeidsbok")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameDrep strPath & "/" & strOldNameSlutt Sub

For å gi nytt navn til en arbeidsbok som ikke er åpen, kan vi bruke metoden Navn.

123 Public Sub RenameWorkbook ()Navn "C: \ Data \ MyFile.xlsx" Som "C: \ Data \ MyNewFile.xlsx"Slutt Sub
wave wave wave wave wave