Интересно, может ли кто-нибудь помочь мне, пожалуйста.VBA Сохранить файл как
Я использую приведенный ниже код для динамического создания списка файлов из данной папки.
В столбце E для каждой строки списка есть ссылка «Нажмите здесь, чтобы открыть», которая позволяет пользователю открывать каждый файл.
Но я теперь хочу изменить это, вместо того чтобы открывать файл, ссылка откроет диалоговое окно «Сохранить», которое позволяет пользователю создать файл для выбранной пользователем папки, и я должен признать, что эта проблема заставила меня озадачен более недели.
Public Sub ListFilesInFolder(SourceFolder As Scripting.folder, IncludeSubfolders As Boolean)
Dim LastRow As Long
On Error Resume Next
For Each FileItem In SourceFolder.Files
' display file properties
Cells(iRow, 3).Formula = iRow - 12
Cells(iRow, 4).Formula = FileItem.Name
Cells(iRow, 5).Select
Selection.Hyperlinks.Add Anchor:=Selection, Address:= _
FileItem.Path, TextToDisplay:="Click Here to Open"
iRow = iRow + 1 ' next row number
With ActiveSheet
LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With
For Each Cell In Range("C13:E" & LastRow) ''change range accordingly
If Cell.Row Mod 2 = 1 Then ''highlights row 2,4,6 etc|= 0 highlights 1,3,5
Cell.Interior.Color = RGB(232, 232, 232) ''color to preference
Else
Cell.Interior.Color = RGB(141, 180, 226) 'color to preference or remove
End If
Next Cell
Next FileItem
If IncludeSubfolders Then
For Each SubFolder In SourceFolder.SubFolders
ListFilesInFolder SubFolder, True
Next SubFolder
End If
Set FileItem = Nothing
Set SourceFolder = Nothing
Set FSO = Nothing
End Sub
Я попытался с помощью команды «Application.Dialogs (xlDialogSaveAs) .Show» в каждой строке кода, но я не могу получить эту работу, потому что все это делает предложит пользователю сохранить файл как он создает список.
Я просто задавался вопросом, может ли кто-нибудь посмотреть на это, и сообщите мне, где я ошибся.
Большое спасибо и добрых пожелания
Chris
Не ясно, что имеется в виду, сохраняя в этом контексте, но один подход к ловле щелчок, чтобы добавить событие Worksheet для SelectionChange, который наблюдает за нужную колонку с 'Если Intersect (Target, Range (» E: E ")) Теперь ничего не значит ...'. Если это выполнено, вы можете запросить сохранение и затем показать диалог сохранения, если да. Конечным результатом будет то, что нажатие в ячейке (т. Е. Изменение выбора) вызывает диалоговые окна. Подобные события SelectionChange могут вводить в заблуждение для обычных пользователей, хотя, поскольку они переопределяют нормальное поведение Excel. –
Hi @Byron Wall, спасибо, что нашли время, чтобы вернуться ко мне с этим и простить меня за то, что я не был чист. Я нашел ссылку здесь [ссылка] (http://stackoverflow.com/questions/22662795/vba-or-formula-to-open-hyperlink-from-a-cell-and-save-rename-downloaded-file -f), который, мы надеемся, объяснит вещи немного подробнее, но я не уверен, как это сделать, чтобы файл, который был открыт и сохранен, не является книгой Excel. Кроме того, если это помогает, я могу опубликовать файл в Dropbox. Большое спасибо и добрые пожелания. Chris – IRHM
Вы в конечном счете просто пытаетесь загрузить файлы из местоположения и дать им имя? Что-то похожее на http://stackoverflow.com/questions/17877389/how-do-i-download-a-file-using-vba-without-internet-explorer? –