2013-06-05 47 views
0

我試圖讓Word在創建基於特定模板的文檔時打開Excel文檔。AutoNew宏不起作用

這裏是我的宏

Sub AutoNew() 
Dim oExcel As Excel.Application 
Dim oWB As Workbook 
Set oExcel = New Excel.Application 
Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx") 
End Sub 

當我雙擊該模板,它帶來了基於模板就好了一個文件,但宏不運行。

它顯示在模板中的宏列表中,但嘗試運行它不會執行任何操作。

+0

您的excel文件在後臺打開,您是否檢查新的Excel實例是否沒有運行,您看不到?看到它,你可以添加這一行:'oExcel.Visible = true' –

+0

總是小事情。 – user2113849

回答

2

正如提到KazJaw,使應用程序可見

Sub AutoNew() 
    Dim oExcel As Excel.Application 
    Dim oWB As Workbook 
    Set oExcel = New Excel.Application 
    Set oWB = oExcel.Workbooks.Open("E:\Letters.xlsx") 
    oExcel.Visible = true 
End Sub 

的缺點是,Excel應用程序推出一個新的任務(見德經理)中的另一個調用宏的情況下 - 每一個文檔中打開它自己的任務。

正確的方法是使用API​​的推出在註冊的應用程序的文件,例如這裏:http://access.mvps.org/access/api/api0018.htm

或一排的解決方法,醜陋的,但偉大工程:

Shell "cmd.exe /c start D:\a\test.xlsx" 

注意與模板宏必須具有擴展名.xltm,而不是.xltx。

+0

+1用於擴展我的簡單評論。 –