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这个。 但是,我相信这个问题可能是你需要SetvariablesWrkbook ,而不是只分配它。

更改

 WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) 

 Set WrkBook = Workbooks.Open(Filename:=.FoundFiles(i)) 

让我知道这是怎么回事!