2013-06-05 50 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用于扩展我的简单评论。 –