从另一个文件调用宏时出错

时间:2016-06-21 02:07:09

标签: excel vba macros

  

“对象不支持此属性或方法”

是我试图调用当前文件中的另一个宏的错误。我正在循环遍历几个excel工作簿,需要在我循环的文件中运行一个宏。

Sub SaveBacktestingFiles()
    Dim wBCalc As Workbook
    Dim wBRaw As Workbook
    Dim wBRun As Workbook

    For Each c In Worksheets("Static").Range("FILE_RANGE").Cells
        Range("Date_Range").Value = c
        Calculate
        FS_Name = Range("FS_Name_Range").Value
        FO_RawName = Range("FO_RawName_Range").Value
        Set wBRun = ActiveWorkbook
        Workbooks.Open Filename:=Range("FO_CalcName_Range").Value, ReadOnly:=True
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs FS_Name
        Set wBCalc = ActiveWorkbook
        Application.Run (wBCalc & "!FilterLoop")
        ActiveWorkbook.Close True
    Next
End Sub

而不是:Application.Run (wBCalc & "!FilterLoop")我试过了 Application.Run ("'" & FO_CalcName_Range & "'!ReApplyDump")包含完整路径 我也试过没有运气:Application.Run ("'" & wBCalc & "'!ReApplyDump")我以前做过这项工作但是不能让它为我的生活工作。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

问题是wbCalc是工作簿而不是字符串。因此,您正在尝试的连接没有意义。

替换

Application.Run (wBCalc & "!FilterLoop")

通过

Application.Run (wBCalc.Name & "!FilterLoop")

无法访问FilterLoop的代码,我无法对此进行测试,但它可以让您更接近目标。