AutoNew宏不起作用

时间:2013-06-05 05:53:49

标签: vba ms-word

每当创建基于特定模板的文档时,我都试图让Word打开Excel文档。

这是我的宏

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

当我双击模板时,它会根据模板显示一个文档,但宏不会运行。

它显示在模板中的宏列表中,但尝试运行它不会做任何事情。

1 个答案:

答案 0 :(得分:2)

正如已经提到的KazJaw,让app可见

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应用程序在另一个调用宏的情况下作为新任务启动(请参阅tak manager) - 每个文档都在自己的任务中打开。

正确的方法是使用API​​在已注册的应用程序中启动文档,例如:http://access.mvps.org/access/api/api0018.htm

或者单排解决方案,很难看,但效果很好:

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

请注意,带宏的模板必须具有扩展名.xltm,而不是.xltx。