2016-11-26 157 views
0

我想在Mac OS X上自動打開一個excel文檔,但它不起作用。我的代碼是:使用vba打開word Mac - OS X

Sub Button81_Click() 
    Dim objWord 
    Dim objDoc 
    Set objWord = CreateObject("Word.Application") 
    Set objDoc = objWord.Documents.Open("/Users/ricardo/Miniman/miniman_uti.docx") 
    objWord.Visible = True 
End Sub 

該路徑是否會出錯?對於這個路徑「/Users/ricardo/Miniman/miniman_uti.docx」它打開excel文件。爲什麼不文字文件?

有人可以幫我嗎?

回答

0

這是否適合您?

sub Test() 

dim objdoc as object 

with CreateObject("word.application") 
set objdoc = .documents.open("path") 
end with 

end sub 
+0

是的,它是一個docx文件。感謝您的代碼。但是,它只適用於Microsoft Word未打開(例如使用其他文檔)。也就是說,如果我們想要處理多個單詞文件,它只會在您第一次打開一個單詞文件時起作用。 – SaM

+0

此時不完全瞭解你。您的路徑中是否有一個用於打開多個單詞doc的特定變量? – Mick17

+0

不需要。如果在運行此代碼之前,我已經打開了任何其他文字文件,則它不起作用,也就是說,它不會打開我想要的文件。如果我在運行此代碼之前沒有打開單詞應用程序,它將起作用。 – SaM

0

代碼安全地打開從文件的Word文檔。 處理您已經打開單詞的情況。

Dim w As Object 
' If word is already open get ahold of the running instance 
' Otherwise create a new instance 
On Error Resume Next 
Set w = GetObject(, "Word.Application") 
If w Is Nothing Then Set w = CreateObject("Word.Application") 
On Error GoTo 0 
' Close all open files and shutdown Word 
' Loop through any open documents and close them 
Do Until w.Documents.Count = 0 
    w.Documents(1).Close 
Loop 
w.Quit False 
Set w = Nothing 

' Now that all instances of word are closed, open the template 
Dim wdApp As Object 
Dim wdDoc As Object 
Set wdApp = CreateObject("Word.application") 
wdApp.Visible = True 
wdApp.DisplayAlerts = False 
Set wdDoc = wdApp.Documents.Open(Filename:="MYPATH")