VBAmacros来批量更新在同一位置的多个文件
非常新,所以请帮助。 我试图批量更新静态文件夹位置中的文件,在一个文件夹中的许多文件。
我想要做的是
- 在Excel 2010中运行VBAmacros以获取networking位置文件夹,
- 打开文件夹中的第一个文件。
- 解除工作簿和工作表的调用,再调用另一个marco来运行更改
- 然后保护工作表closures文件
- 然后移动到文件夹中的下一个文件,直到所有文件都被更正。
我创build了marco来进行更改,这就是所谓的“编辑”
文件types是xlsm和工作簿和工作表是密码保护我怎样才能自动运行macros来转到networking位置,并在系列打开每个文件,解除保护,调用macros,然后重新保护文档closures文件,并移动到下一个文件直到他们全部更新。
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
我pipe理取消保护文件更新并重新保护文件,只是不能从networking位置获取文件。
我正在使用Excel 07,它不允许Application.FindFile,所以我不能testing这个。 但是,我相信这个问题可能是你需要Set
variablesWrkbook
,而不是只分配它。
更改
WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
至
Set WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))
让我知道这是怎么回事!