VBA Workbook Name (Get, Set, without Extension)

Denna handledning visar hur du får och anger arbetsbokens namn i VBA.

Vi kan hämta eller ställa in namnet på den aktiva arbetsboken i VBA eller bläddra igenom alla öppna arbetsböcker i Excel och få eller ange namnet på var och en av dem med hjälp av en VBA -loop.

Hämta arbetsbokens namn

För att få namnet på den aktiva arbetsboken måste vi använda egenskapen namn för arbetsboksobjektet.

12345 Sub GetWorkbookName ()Dim strWBName Som strängstrWBName = ActiveWorkbook.NameMsgBox strWBNameAvsluta Sub

Om vi ​​skulle köra koden ovan skulle vi se en meddelanderuta visas på skärmen med namnet på den aktiva arbetsboken.

För att gå igenom alla aktiva arbetsböcker och returnera arbetsböckernas namn till Excel kan vi köra följande kod:

1234567 Sub GetWorkbookNames ()Dim wb Som arbetsbokFör varje wb i arbetsböckerActiveCell = wb.NameActiveCell.Offset (1, 0) .VäljNästaAvsluta Sub

Exemplen ovan inkluderar filtillägget (t.ex. xlsx). Om du inte vill inkludera tillägget finns det några metoder vi kan använda för att bara få filnamnet på arbetsboken.

Skaffa arbetsbokens namn utan tillägg

Vi kan använda funktionerna VÄNSTER och INSTR för att ta bort alla tecken efter perioden i filnamnet:

12345 Sub GetWorkbookName ()Dim strWBName Som strängstrWBName = Vänster (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameAvsluta Sub

Vi kan använda funktionerna VÄNSTER och LEN för att ta bort fem tecken från slutet av filnamnet:

12345 Sub GetWorkbookName ()Dim strWBName Som strängstrWBName = Vänster (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameAvsluta Sub

Ange arbetsbokens namn

För att ange namnet på en arbetsbok i VBA använder vi fortfarande egenskapen Namn på arbetsboken, men vi kan inte använda den här metoden för att ändra namnet på den aktiva arbetsboken. Detta beror på att den aktiva arbetsboken är öppen och ett filåtkomstfel uppstår. För att övervinna detta kan vi spara filen med ett nytt namn och sedan radera den gamla filen.

12345678910 Public Sub SetWorkbookName ()Dim strPath Som strängDim strNewName Som strängDim strOldName Som strängstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Vänligen ange nytt namn för arbetsbok")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameDöda strPath & "/" & strOldNameAvsluta Sub

För att byta namn på en arbetsbok som inte är öppen kan vi använda metoden Namn.

123 Public Sub RenameWorkbook ()Namn "C: \ Data \ MyFile.xlsx" Som "C: \ Data \ MyNewFile.xlsx"Avsluta Sub

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave