2
我有一個DOTM模板很簡單的字子:調用帶有參數的字VBA子從Excel VBA
Sub YHelloThar(msg As String)
MsgBox (msg)
End Sub
然後我有一個Excel子:
Sub CallWordSub()
Dim wdApp As Word.Application
Dim newDoc As Word.Document
'Word template location
strFile = "C:\Some\Folder\MyWordDoc.dotm"
'Get or create Word application
Set wdApp = GetObject(, "Word.Application")
If wdApp Is Nothing Then
Set wdApp = CreateObject("Word.Application")
End If
'Create new Word doc from template
Set newDoc= wdApp.Documents.Add(strFile)
'Call the YHelloThar sub from the word doc
Call wdApp.Run(strFile & "!YHelloThar", "Hello")
End If
End Sub
最後一行給出我「運行時錯誤'438':對象不支持此屬性或方法。」
我不知道我在做什麼錯 - 我查過的所有東西都表明這是從不同的應用程序中調用子接口的正確方法。
此外,如果我將最後一行更改爲無參數調用,它突然正常工作。
太棒了。這工作完美。特別感謝關於錯誤檢查和延遲綁定的額外評論。我一直有點避免延遲綁定,因爲我對VBA很陌生,想看看有什麼屬性/方法(當所有東西都只是一個對象時,這顯然不能很好地工作),但我可能應該儘快做出改變。 – 2012-03-02 20:38:48
+1打好的例子 – brettdj 2012-03-03 00:28:08