Excel VBA宏可批量更新同一位置的多个文件

Excel VBA宏可批量更新同一位置的多个文件,excel,vba,Excel,Vba,非常新的,所以请帮助。我试图批量更新静态文件夹位置中的文件,一个文件夹中有许多文件 我想做的是 在Excel 2010中运行VBA宏以转到网络位置文件夹 打开文件夹中的第一个文件 取消对工作簿和工作表的保护,调用另一个marco运行更改 然后保护工作表并关闭文件 然后移动到文件夹中的下一个文件,直到所有文件都已更正 我创建了marco来进行更改,这称为“编辑” 文件类型为xlsm,工作簿和工作表受密码保护。如何自动运行宏以转到网络位置并依次打开每个文件、取消保护、调用宏,然后重新保护文档关闭

非常新的,所以请帮助。我试图批量更新静态文件夹位置中的文件,一个文件夹中有许多文件

我想做的是

  • 在Excel 2010中运行VBA宏以转到网络位置文件夹
  • 打开文件夹中的第一个文件
  • 取消对工作簿和工作表的保护,调用另一个marco运行更改
  • 然后保护工作表并关闭文件
  • 然后移动到文件夹中的下一个文件,直到所有文件都已更正
我创建了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

我正在设法取消对文件更新的保护并重新保护该文件,只是无法从网络位置获取该文件。

我使用的是Excel 07,它不允许Application.FindFile,因此我无法对此进行测试。但是,我认为问题可能是您需要设置变量
Wrkbook
,而不仅仅是分配它

改变

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


让我知道结果如何

那么,您的问题是设置代码操作的网络文件夹吗?如果是这样的话,为什么-我会认为通过文件夹路径执行一个基本的
Dir
就足够了?
Set WrkBook = Workbooks.Open(Filename:=.FoundFiles(i))