从Word打开excel并执行操作

时间:2014-01-23 09:32:12

标签: excel vba

我想创建一个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

1 个答案:

答案 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应用程序的引用。