这是非常新的所以请帮忙.我试图批量更新静态文件夹位置的文件,一个文件夹中的许多文件.
我想做的是
我创建了marco进行更改,这称为"编辑"
文件类型是xlsm,工作簿和工作表受密码保护我如何自动运行宏来转到网络位置并串行打开每个文件,取消保护,调用宏,然后重新保护文档关闭文件并移动到下一个文件直到它们全部更新.
Sub Auto_open_change()
Dim WrkBook As Workbook
Dim StrFileName As String
Dim FileLocnStr As String
Dim LAARNmeWrkbk As String
PERNmeWrkbk = ThisWorkbook.Name
StrFileName = "*.xlsx"
FileLocnStr = ThisWorkbook.Path
Workbooks.Open (FileLocnStr & "\" & StrFileName)
Workbooks(StrFileName).Activate
With Application.FindFile
SearchSubFolders = False
LookIn = "Network location"
Filename = "*.xlsm"
If .Execute > 0 Then
Debug.Print "There were " & .FoundFiles.Count & " file(s) found."
For i = 1 To .FoundFiles.Count
WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
WrkBook.Worksheets(1).Select
ThisWorkbook.Worksheets(1).Cells(DestinationRange) = WrkBook.Worksheets(1).Cells(SourceRange).Value
Next i
Else
Debug.Print "There were no files found."
End If
Run Code Online (Sandbox Code Playgroud)
我设法取消保护文件更新并重新保护文件,只是无法从网络位置获取文件.
我使用的是 Excel 07,它不允许 Application.FindFile,所以我无法对此进行测试。但是,我认为问题可能是您需要Set变量Wrkbook,而不仅仅是分配它。
改变
WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
Run Code Online (Sandbox Code Playgroud)
到
Set WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
Run Code Online (Sandbox Code Playgroud)
让我知道结果如何!