Excel - Можно ли сделать функцию перетаскивания для сохранения файлов непосредственно в папку?

334
Sebastian

Я работаю над системой EDMS, которая должна быть создана в Excel. Может ли кто-нибудь уточнить, можно ли перетаскивать файлы непосредственно в путь к папке через Excel? Вместо того, чтобы обращаться к папкам постоянно, мои менеджеры проектов могли бы по-настоящему воспользоваться такой функцией.

С наилучшими пожеланиями, Себастьян

0
Да, Excel VBA может помочь вам перетащить форму файла в виде дерева в папку! Rajesh S 6 лет назад 0
У вас есть какие-либо знания о том, как это сделать? Это будет высоко ценится! Прямо сейчас у меня есть запрос, созданный из папки, расположенной на общем сетевом диске, которая показывает все файлы, расположенные там. Было бы здорово, если бы можно было перетаскивать файлы прямо в эти разные папки через Excel, не обращаясь к ним вручную. Sebastian 6 лет назад 0
Дайте мне немного времени, чтобы протестировать доступный код VBA, скоро я вернусь к посту. ☺ Rajesh S 6 лет назад 0
У меня готов и работает код VBA, который поможет вам перемещать конкретные файлы из одной в другую папку, а не DRAG их! Будет ли это работать для вас, просто подтвердите, чтобы я мог опубликовать это здесь! ☺ Rajesh S 6 лет назад 0
Конечно, позвольте мне попробовать! :-) Sebastian 6 лет назад 0
Проверьте код, который я разместил только что после того, как я успешно его попробовал. ☺ Rajesh S 6 лет назад 0

1 ответ на вопрос

0
Rajesh S
Sub MoveFiles()  Dim xFd As FileDialog Dim xTFile As String Dim xExtArr As Variant Dim xExt As Variant Dim xSPath As String Dim xDPath As String Dim xSFile As String Dim xCount As Long  Set xFd = Application.FileDialog(msoFileDialogFolderPicker) xFd.Title = "Please Select Original Folder:"  If xFd.Show = -1 Then xSPath = xFd.SelectedItems(1) Else Exit Sub End If  If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\" xFd.Title = "Please Select Destination folder:"  If xFd.Show = -1 Then xDPath = xFd.SelectedItems(1) Else Exit Sub End If  If Right(xDPath, 1) <> "\" Then xDPath = xDPath + "\" xExtArr = Array("*.xlsm*", "*.Docx")  For Each xExt In xExtArr xTFile = Dir(xSPath & xExt)  Do While xTFile <> "" xSFile = xSPath & xTFile FileCopy xSFile, xDPath & xTFile Kill xSFile xTFile = Dir xCount = xCount + 1 Loop Next MsgBox "Total number of moved files is: " & xCount, vbInformation, "Move File(S)" End Sub 

Как это устроено:

  • Скопируйте и вставьте этот код как стандартный модуль.
  • Запустить макрос.
  • Он открывает проводник и предлагает выбрать оригинальную (исходную) папку.
  • Выберите папку и нажмите ОК.
  • Снова он предложит вам выбрать папку назначения.
  • Нажмите Ok, скоро вы получите окно с сообщением, сколько файлов было скопировано.

Замечания:

  • Эта строка является редактируемой Array("*.xlsm*", "*.Docx"), вы можете заменить File extensionsна другую, в соответствии с вашими потребностями.

Похожие вопросы