创建Word文件,通常的做法创建从Excel VBA Word文档在Excel 2011中使用VBA创建?从Excel 2011
(我不希望使用AppleScript的,因为我希望程序能够在PC上也运行。)
创建Word文件,通常的做法创建从Excel VBA Word文档在Excel 2011中使用VBA创建?从Excel 2011
(我不希望使用AppleScript的,因为我希望程序能够在PC上也运行。)
对于PC我这样做:
Dim word As Object: Set word = CreateObject("word.application")
word.Visible = True
Dim doc As Object: Set doc = word.documents.Add
感谢@brettville,您的代码对于Excel2011的首次运行可以正常工作,从而证明应该可以创建word文件。但是,运行第二次或Word已打开,语句Set word = CreateObject(“word.application”)在mac上提供错误429(对象不能由ActiveX组件创建),虽然它在pc上运行时没有问题(Excel 2007 )/ Rolf – rolf
嗯,在Excel的VBA for mac中,你是否有能力添加引用? – DontFretBrett
我怎么知道? Excel 2011 vba没有任何可用的(可搜索的)帮助系统!你有什么办法解决这个问题? – rolf
下面的代码,基于bretville的建议,似乎可以在mac(在Excel2011上测试)和在pc上(在Excel2007上测试)上运行,并且可以被重复运行,从而允许创建多个Word文件。代码在Excel2011(mac)vba下工作需要什么,以测试Word是否已在运行。这种方法可能不是最优雅的,但它的工作原理。
Dim word As Object
Dim doc As Object
On Error Resume Next
Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
Set word = CreateObject("word.application") 'creates a Word application
Err.Clear
End If
word.Visible = True
Set doc = word.documents.Add
您可以交换两条集字语句,当运行在PC无误码操作变得必要的,这似乎是可取的,但由于某些原因,代码,然后运行非常缓慢地在Mac上。
欢迎来到StackOverflow。当你写出“导致错误”或“导致异常”这样的单词时,你应该做的第一件事是发布**“精确**”的含义或者**精确**异常或错误信息你收到。请记住,我们只有您在问题中提供的信息才能通过 - 我们无法从此处看到您的屏幕或代码或错误消息。您提供给我们的信息越多,您获得答案的机会就越多(而且速度也越快)。换句话说,你需要帮助我们来帮助你。 :) –
http://forum.soft32.com/mac/Error-ActiveX-create-object-OSX-ftopict83351.html –
这种方法导致我得到一个内存不足的错误,这对我来说没有意义...在Mac上并使用VBA。 –