5

これは非常に新しいので、助けてください。静的フォルダーの場所にあるファイルを一括更新しようとしています。1 つのフォルダーに多くのファイルがあります。

私がやりたいことは

  • Excel 2010 で VBA マクロを実行してネットワーク ロケーション フォルダーに移動し、
  • フォルダ内の最初のファイルを開きます。
  • ワークブックとワークシートの保護を解除し、別のマルコを呼び出して変更を実行します
  • 次にワークシートを保護し、ファイルを閉じます
  • すべてのファイルが修正されるまで、フォルダ内の次のファイルに移動します。

変更を行うためにマルコを作成しました。これは「編集」と呼ばれます

ファイルの種類は 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

ファイルの更新の保護を解除し、ファイルを正常に再保護することに成功しましたが、ネットワークの場所からファイルを取得できません。

4

1 に答える 1

1

Application.FindFile を許可しない Excel 07 を使用しているため、これをテストできません。ただし、変数を割り当てるだけでなくSet、変数が必要であることが問題である可能性があると思います。Wrkbook

変化する

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

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

それがどうなるか教えてください!

于 2013-07-05T00:46:08.700 に答える