Hur byter man namn på alla bildfiler i en mapp enligt en lista med celler i Excel?
Har du någonsin behövt byta namn på flera bilder i en mapp baserat på en lista med namn i ett Excel-ark? Att byta namn på dem en efter en kan vara tidskrävande, men med hjälp av VBA-koder kan du snabbt automatisera processen.
Byt namn på alla bildfiler i en mapp
Byt namn på alla bildfiler i en mapp
För att byta namn på alla bildfiler i en angiven mapp, följ dessa steg:
Steg 1: Importera de ursprungliga filnamnen från mappen till ett ark i Excel
1. Tryck Alt + F11 för att aktivera Microsoft Visual Basic för applikationer fönster.
2. klick Insert > Modulerna och klistra in koden nedan i skriptet.
VBA: Hämta bildnamn från en mapp
Sub PictureNametoExcel()
'UpdatebyExtendoffice201709027
Dim I As Long
Dim xRg As Range
Dim xAddress As String
Dim xFileName As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select a cell to place name list:", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xRg = xRg(1)
xRg.Value = "Picture Name"
With xRg.Font
.Name = "Arial"
.FontStyle = "Bold"
.Size = 10
End With
xRg.EntireColumn.AutoFit
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
I = 1
If xFileDlg.Show = -1 Then
xFileDlgItem = xFileDlg.SelectedItems.Item(1)
xFileName = Dir(xFileDlgItem & "\")
Do While xFileName <> ""
If InStr(1, xFileName, ".jpg") + InStr(1, xFileName, ".png") + InStr(1, xFileName, ".img") + InStr(1, xFileName, ".gif") + InStr(1, xFileName, ".ioc") + InStr(1, xFileName, ".bmp") > 0 Then
xRg.Offset(I).Value = xFileDlgItem & "\" & xFileName
I = I + 1
End If
xFileName = Dir
Loop
End If
Application.ScreenUpdating = True
End Sub
3. Tryck F5 för att köra koden, och en dialogruta dyker upp för att påminna dig om att välja en cell för att mata ut namnlistan. Se skärmdump:
4. klick OK och välj den angivna mappen vars bildnamn du behöver lista i det aktuella kalkylbladet. Se skärmdump:
5. klick OK. Bildnamnen har listats på det aktiva arket.
Steg 2: Byt namn på bildfilerna baserat på en ny namnlista
1. Tryck Alt + F11 för att aktivera Microsoft Visual Basic för applikationer fönster.
2. klick Insert > Modulerna och klistra in under koden i skriptet.
VBA: Byt namn på bildfiler i en mapp
Sub RenameFile()
'UpdatebyExtendoffice20170927
Dim I As Long
Dim xLastRow As Long
Dim xAddress As String
Dim xRgS, xRgD As Range
Dim xNumLeft, xNumRight As Long
Dim xOldName, xNewName As String
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRgS = Application.InputBox("Select Original Names(Single Column):", "KuTools For Excel", xAddress, , , , , 8)
If xRgS Is Nothing Then Exit Sub
Set xRgD = Application.InputBox("Select New Names(Single Column):", "KuTools For Excel", , , , , , 8)
If xRgD Is Nothing Then Exit Sub
Application.ScreenUpdating = False
xLastRow = xRgS.Rows.Count
Set xRgS = xRgS(1)
Set xRgD = xRgD(1)
For I = 1 To xLastRow
xOldName = xRgS.Offset(I - 1).Value
xNumLeft = InStrRev(xOldName, "\")
xNumRight = InStrRev(xOldName, ".")
xNewName = xRgD.Offset(I - 1).Value
If xNewName <> "" Then
xNewName = Left(xOldName, xNumLeft) & xNewName & Mid(xOldName, xNumRight)
Name xOldName As xNewName
End If
Next
MsgBox "Congratulations! You have successfully renamed all the files", vbInformation, "KuTools For Excel"
Application.ScreenUpdating = True
End Sub
3. Tryck F5 för att köra koden, och en dialogruta dyker upp för att påminna dig om att välja de ursprungliga bildnamnen du vill ersätta. Se skärmdump:
4. klick OKoch välj de nya namnen du vill ersätta bildnamnen i den andra dialogen. Se skärmdump:
5. klick OK, dyker en dialog upp för att påminna dig om att bildnamnen har bytts ut.
6. Klicka på OK, så kommer bildnamnen i mappen att ersättas med de nya namnen från cellerna i arket.
![]() |
![]() |
![]() |
Relaterade artiklar:
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!