我想创建一个marco,它允许我在Word中使用Excel工具添加内容。我设法得到一些工作,从word打开一个excel文件:
Dim excelApp As Excel.Application
Dim openExcel As Workbook
Dim var1 As Integer
Set excelApp = New Excel.Application
Set openExcel = excelApp.Workbooks.Open("C:\Documents and Settings\aa471714\Desktop\Book1.xls")
excelApp.Visible = True
但是现在我想添加应该在excel中发生的代码。但是当我添加相关代码时:
Sheets("Sheet2").Select
Range("A4").Select
这似乎不起作用。我忽略了什么吗?
亲爱的,
Marc
答案 0 :(得分:1)
请记住,在Word中创建的宏默认应用程序始终是Word应用程序。因此,每次要在Excel中进行任何操作时,都需要通过添加对Excel Application(或其他Excel对象,如下所示)的完整引用来声明它。
请记住,在这种情况下,您需要添加扩展对象层次结构。
回到你的代码 - 添加这种对象引用应该解决问题: (包括一些额外的重新版本)
'comments referring to Object hierarchy
openExcel.Sheets("Sheet2").Select 'OK because sheet is an object below Workbook
excelApp.Range("A4").Select 'NEW, Range is object below Application or...
openExcel.Sheets("Sheet2").Range("A4").Select 'IMPROVED, Range is object below sheet
'general- Range.Select works only for activesheet!!
对象openExcel
保留对由excelApp
表示的Excel应用程序的引用。