5

別のブックを開き (ファイル名はセル値に基づいています)、そのファイル内で Single_sector というマクロを実行するブックがあります。

ファイルは問題なく開きますが、マクロは実行されません。何か案は?

Sub run_all()
Dim Location



On Error Resume Next

'Location of file to open
 Location = Worksheets("Main").Range("folder_location").Value

'Open F&V File
Application.Workbooks.Open Location & Range("fv_file").Value
'Run Macro
Run ("Single_sector")



End Sub
4

3 に答える 3

18

他のブックを呼び出すマクロに次のコードを配置します。

Location = Worksheets("Main").Range("folder_location").Value
Set wb = Workbooks.Open(Location & Range("fv_file").Value)
Application.Run "'" & wb.Name & "'!" & strSubToRun, Parameters
Set wb = Nothing

パラメータは渡す引数の配列であるため、他のワークブックのサブルーチンは次のようになります。

Public Sub TheSub(ParamArray X())

Dim i As Long

Sheet1.Cells(1, 1).Value = "Parameters passed:"

For i = 0 To UBound(X(0))
    Sheet1.Cells(i + 2, 1).Value = CStr(X(i))
Next

End Sub
于 2013-03-04T14:06:00.710 に答える
3

ここに画像の説明を入力

Run ("Single_sector") を使用する必要がないように、別のワークブックのコードが Workbook_open イベントにあることを確認してください。プロシージャ single_selector は、別のワークブックが開かれるとすぐにトリガーされます。

更新された回答

Sub run_all()
    Dim Location



    On Error Resume Next

    Dim wkb As Workbook

    'Location of file to open
    Location = Worksheets("Main").Range("folder_location").Value

    'Open F&V File
    Set wkb = Workbooks.Open(Location & Range("fv_file").Value)
    wkb.Sheets(1).Single_sector ' kindly put this proc in another workbook sheet1




End Sub
于 2013-03-04T12:03:31.507 に答える