0

一連のワークブック内のチェックボックスを使用して、リンクされたセルの指定を修正するマクロを実行しようとしています。

1 つのファイルで調整が必要なワークブックが多数 (約 100) あります。

そのため、これらのファイルをループして再割り当てを実行していますが、マクロを記述したファイルにのみ適用されます。

Sub CheckBoxesControl()

On Error Resume Next
    Dim path As String
    Dim file As String
    Dim wkbk As Workbook
    Dim i As Long


    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    path = "C:\file\path\"
    file = Dir(path)

    Do While Not file = ""
        Workbooks.Open (path & file)
        Set wkbk = ActiveWorkbook

    For i = 1 To 400
        ActiveWorkbook.Sheet4.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AA" & i
        ActiveWorkbook.Sheet21.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AB" & i
        Activekbook.Sheet22.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AC" & i

    Next i

    wkbk.Save
    wkbk.Close
    file = Dir
    Loop

End Sub

各ファイルに適用されるように調整する方法を誰か教えてもらえますか?

マクロはエラーなしで実行されます (実際、ファイル内の各ファイルは開いたり閉じたりしているように見えます)。

4

1 に答える 1

0

ActiveWorkbook を使用しないでください。問題を混乱させる可能性があります (ActiveCell / Selection を使用するのと同じ) - 次のようにします。

Do While Not file = ""
    Set wkbk = Workbooks.Open (path & file)

For i = 1 To 400
    wkbk.Sheet4.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AA" & i
    wkbk .Sheet21.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AB" & i
    wkbk .Sheet22.CheckBoxes("Check Box " & i).LinkedCell = "ChkBoxOutput!AC" & i

Next i

wkbk.Save
wkbk.Close
file = Dir
Loop
于 2013-06-12T09:22:41.613 に答える