2014-09-26 68 views
3

我已經在我已經把啓動目錄在Word傳遞參數與Application.Run VBA

Public Sub SayHi1() 
    MsgBox "Hi......." 
End Sub 

Public Sub SayHi2(ByVal n As String) 
    MsgBox "Hi " & n 
End Sub 

然後從一個新的文檔我的Word加載項(.dotm)定義的兩個分我能調用第一子沒有參數如下:

Sub AppRun_AddIn_NoArg() 
    Application.Run "MyProject.Module1.SayHi1" 
End Sub 

但是當我嘗試運行帶有參數的第二次我得到錯誤說「對象不支持此屬性或方法」

Sub AppRun_AddIn_WithArg() 
    Application.Run "MyProject.Module1.SayHi2", "Tejas" 
End Sub 

錯誤消息: enter image description here

+3

由於某種原因,如果您刪除了「MyProject」位,它會起作用 - 但很明顯,您最終可能會調用錯誤的宏。顯然這與[「如果指定文檔名稱,您的代碼只能在與當前上下文相關的文檔中運行宏 - 而不是任何文檔中的任何宏」)(http://msdn.microsoft.com/ EN-US /圖書館/辦公室/ ff838935.aspx)。 – GSerg 2014-09-26 16:29:31

+0

你有沒有使用Call的原因? – 2014-09-26 16:47:43

+0

@GSerg是的,沒有項目名稱和模塊名稱它的工作。 – Tejas 2014-09-26 21:35:08

回答

2

這似乎是長期使用Word的問題。

由於KB190235 suggests

原因:
您已經包括模板名作爲Macroname參數字符串的一部分。

分辨率:
從Macroname參數中刪除模板名稱。

解決方法:
爲了避免引用的項目中命名衝突,給你的程序唯一的名稱,以便您可以調用一個過程而不指定項目或模塊。

+0

它的工作。謝謝! – Tejas 2014-09-26 21:34:28