Denne vejledning viser, hvordan du får og indstiller projektmappens navn i VBA.
Vi kan hente eller indstille navnet på den aktive projektmappe i VBA eller gennemgå alle de åbne projektmapper i Excel og få eller indstille navnet på hver af dem ved hjælp af en VBA Loop.
Hent projektmappens navn
For at få navnet på den aktive projektmappe skal vi bruge egenskaben navne på projektmapperobjektet.
12345 | Sub GetWorkbookName ()Dim strWBName som strengstrWBName = ActiveWorkbook.NameMsgBox strWBNameAfslut Sub |
Hvis vi skulle køre koden ovenfor, ville vi se en meddelelsesboks vises på skærmen med navnet på den aktive projektmappe.
For at gennemgå alle de aktive projektmapper og returnere navnene på projektmapperne til Excel kan vi køre følgende kode:
1234567 | Sub GetWorkbookNames ()Dim wb Som projektmappeFor hver wb i projektmapperActiveCell = wb.NameActiveCell.Offset (1, 0) .VælgNæsteAfslut Sub |
Eksemplerne ovenfor vil omfatte filtypen (f.eks. Xlsx). Hvis du ikke vil inkludere udvidelsen, er der et par metoder, vi kan bruge til kun at få filnavnet på projektmappen.
Få navn på projektmappe uden udvidelse
Vi kan bruge funktionerne VENSTRE og INSTR til at fjerne tegn efter perioden i filnavnet:
12345 | Sub GetWorkbookName ()Dim strWBName som strengstrWBName = Venstre (ActiveWorkbook.Name, InStr (ActiveWorkbook.Name, ".") - 1)MsgBox strWBNameAfslut Sub |
Vi kan bruge funktionerne VENSTRE og LEN til at fjerne 5 tegn fra slutningen af filnavnet:
12345 | Sub GetWorkbookName ()Dim strWBName som strengstrWBName = Venstre (ActiveWorkbook.Name, Len (ActiveWorkbook.Name) - 55)MsgBox strWBNameAfslut Sub |
Indstilling af projektmappens navn
For at angive navnet på en projektmappe i VBA bruger vi stadig egenskaben Navn i projektmappen, men vi kan ikke bruge denne metode til at ændre navnet på den aktive projektmappe. Dette skyldes, at den aktive projektmappe er åben, og der vil opstå en filadgangsfejl. For at overvinde dette kan vi gemme filen med et nyt navn og derefter slette den gamle fil.
12345678910 | Public Sub SetWorkbookName ()Dim strPath som strengDim strNewName As StringDim strOldName som strengstrOldName = ActiveWorkbook.NamestrNewName = InputBox ("Angiv nyt navn til projektmappe")strPath = ActiveWorkbook.PathActiveWorkbook.SaveAs strPath & "/" & strNewNameDræb strPath & "/" & strOldNameAfslut Sub |
For at omdøbe en projektmappe, der ikke er åben, kan vi bruge metoden Navn.
123 | Public Sub RenameWorkbook ()Navn "C: \ Data \ MyFile.xlsx" Som "C: \ Data \ MyNewFile.xlsx"Afslut Sub |