Jak skopiować lub przenieść pliki z jednego folderu do drugiego na podstawie listy w programie Excel?
Jeśli masz listę nazw plików w kolumnie w arkuszu, a pliki znajdują się w folderze w twoim komputerze. Ale teraz musisz przenieść lub skopiować te pliki, których nazwy są wymienione w arkuszu z oryginalnego folderu do innego, jak pokazano na zrzucie ekranu. Jak możesz wykonać to zadanie tak szybko, jak to możliwe w programie Excel?
Kopiuj lub przenoś pliki z jednego folderu do drugiego na podstawie listy w Excelu z kodem VBA
Kopiuj lub przenoś pliki z jednego folderu do drugiego na podstawie listy w Excelu z kodem VBA
Aby przenieść pliki z jednego folderu do drugiego na podstawie listy nazw plików, poniższy kod VBA może wyświadczyć ci przysługę, wykonaj następujące czynności:
1. Przytrzymaj Alt + F11 klucze w programie Excel i otwiera plik Microsoft Visual Basic for Applications okno.
2. Kliknij wstawka > Modułi wklej następujący kod VBA w oknie modułu.
Kod VBA: Przenieś pliki z jednego folderu do drugiego na podstawie listy w programie Excel
Sub movefiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = " Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = " Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
Kill xSPathStr & xVal
End If
Next
End Sub
3. A następnie naciśnij F5 klucz do uruchomienia tego kodu, a pojawi się okno zachęty przypominające o wybraniu komórek zawierających nazwy plików, patrz zrzut ekranu:
4. Następnie kliknij OK przycisk iw wyskakującym oknie wybierz folder zawierający pliki, z których chcesz przenieść, patrz zrzut ekranu:
5. A następnie kliknij OK, idź dalej wybierając folder docelowy, w którym chcesz zlokalizować pliki w innym wyskakującym oknie, zobacz zrzut ekranu:
6. Na koniec kliknij OK aby zamknąć okno, a teraz pliki zostały przeniesione do innego folderu, który określiłeś na podstawie nazw plików na liście arkuszy roboczych, zobacz zrzut ekranu:
Note: Jeśli chcesz tylko skopiować pliki do innego folderu, ale zachowaj oryginalne pliki, zastosuj poniższy kod VBA:
Kod VBA: kopiuj pliki z jednego folderu do drugiego na podstawie listy w programie Excel
Sub copyfiles()
'Updateby Extendoffice
Dim xRg As Range, xCell As Range
Dim xSFileDlg As FileDialog, xDFileDlg As FileDialog
Dim xSPathStr As Variant, xDPathStr As Variant
Dim xVal As String
On Error Resume Next
Set xRg = Application.InputBox("Please select the file names:", "KuTools For Excel", ActiveWindow.RangeSelection.Address, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xSFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xSFileDlg.Title = "Please select the original folder:"
If xSFileDlg.Show <> -1 Then Exit Sub
xSPathStr = xSFileDlg.SelectedItems.Item(1) & "\"
Set xDFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
xDFileDlg.Title = "Please select the destination folder:"
If xDFileDlg.Show <> -1 Then Exit Sub
xDPathStr = xDFileDlg.SelectedItems.Item(1) & "\"
For Each xCell In xRg
xVal = xCell.Value
If TypeName(xVal) = "String" And xVal <> "" Then
FileCopy xSPathStr & xVal, xDPathStr & xVal
End If
Next
End Sub
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!