Jak zmienić nazwy wszystkich obrazów w folderze zgodnie z listą komórek w programie Excel?
Czy kiedykolwiek próbowałeś zmienić nazwy obrazów zgodnie z listą komórek w arkuszu? Jeśli tak, czy masz jakieś sztuczki, aby szybko wykonać zadanie bez zmiany ich nazw pojedynczo? W tym artykule przedstawiam dwa kody VBA, aby szybko obsłużyć to zadanie w Excelu.
Zmień nazwy wszystkich obrazów w folderze
Zmień nazwy wszystkich obrazów w folderze
Aby zmienić nazwy wszystkich obrazów w określonym folderze, musisz najpierw wymienić oryginalne nazwy w arkuszu.
1. naciśnij Alt + F11 klawisze, aby włączyć Microsoft Visual Basic for Applications okno.
2. kliknij wstawka > Moduł i wklej poniższy kod do skryptu.
VBA: Uzyskaj nazwy obrazów folderu
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. naciśnij F5 , aby uruchomić kod, i pojawi się okno dialogowe przypominające o wybraniu komórki do wyświetlenia listy nazw. Zobacz zrzut ekranu:
4. kliknij OK i wybierz określony folder, którego nazwy obrazów chcesz wyświetlić w bieżącym arkuszu. Zobacz zrzut ekranu:
5. kliknij OK. Nazwy obrazów zostały wymienione na aktywnym arkuszu.
Następnie możesz zmienić nazwy zdjęć.
1. naciśnij Alt + F11 klawisze, aby włączyć Microsoft Visual Basic for Applications okno.
2. kliknij wstawka > Moduł i wklej poniższy kod do skryptu.
VBA: Uzyskaj Zmień nazwy zdjęć
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. naciśnij F5 , aby uruchomić kod, i pojawi się okno dialogowe przypominające o wybraniu oryginalnych nazw obrazów, które chcesz zastąpić. Zobacz zrzut ekranu:
4. kliknij OKi wybierz nowe nazwy, które chcesz zastąpić nazwy obrazów w drugim oknie dialogowym. Zobacz zrzut ekranu:
5. kliknij OK, pojawi się okno dialogowe przypominające, że nazwy obrazów zostały pomyślnie zastąpione.
6. Kliknij OK, a nazwy obrazów zostały zastąpione komórkami w arkuszu.
Względne artykuły:
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!