2016-11-18 23 views
0

時間を費やして調査をしましたが、何が間違っているかわかりません。MS Access VBAからExcel VBAを実行しています

セキュリティ両方のファイルの設定が正しい。呼び出されるサブは、通常のモジュールでは公開&です。

エラー状態が

コード「マクロ何とか何とか何とか....実行できません」:

Private Sub this() 
    Dim xl As Object 
    Set xl = CreateObject("Excel.Application") 
    xl.Visible = True 
    xl.Workbooks.Open "pathToFile" & "\" & "Dig IT.xlsm", True, False 
    xl.Run "ThisWorkbook.Module3" 
    Set xl = Nothing 
End Sub 
+0

ああ神イム。それをxl.Run "name"に変更し、完全に機能しました。回答として投稿し、フィードバックを受け取る –

答えて

1

代わりの"ThisWorkbook.Module3"を、ワークブック名​​、モジュール名、およびプロシージャ名を指定する必要があります(「Module3」はコードモジュールの名前で、実行しようとしているサブ/機能ではないと仮定します)。

私は、この(未テスト)のような形式である必要が信じている:ダム

Private Sub this() 
    Dim xl As Object, wb as Object 
    Const MODULE_NAME As String = "Module3" '### MODIFY AS NEEDED! 
    Const PROC_NAME As String = "macro_name" '### MODIFY AS NEEDED! 
    Dim xlMacro As String 
    Set xl = CreateObject("Excel.Application") 
    xl.Visible = True 
    Set wb = xl.Workbooks.Open("pathToFile" & "\" & "Dig IT.xlsm", True, False) 

    ' builds the string to send to Excel.Run method: 
    xlMacro = wb.Name & "!" & MODULE_NAME & "." & PROC_NAME 
    ' call the macro in Excel 
    xl.Run xlMacro 
    Set xl = Nothing 
End Sub 
関連する問題