升级2013年的Word VBA代码

我有一个单词模板文件,从Excel文件中检索数据以填充表单。

代码看起来像这样:

Dim myXL As Object Set myXL = Getobject("myfile.xls") myXL.Application.Visible = True myXL.Parent.Windows(1).Visible = True 

此代码在Office 2010和2007中正常工作,但在2013年尝试使用时,会出现run time error 9 ,这是array subscript error 。 当我检查Windowsarrays它有零元素,所以错误是正确的。

我如何在2013年取得同样的成绩?

下一个代码试图访问Worksheets("mysheet" ),如果我跳过访问工作表的Visible = True行给出runtime error 1004.

任何帮助解决这个将不胜感激。

为了使代码在Office 2013上工作,在尝试使窗口可见之前,我添加了行myXL.Activate。 所以代码变成:

 Dim myXL As Object Set myXL = Getobject("myfile.xls") myXL.Application.Visible = True myXL.Activate myXL.Parent.Windows(1).Visible = True 

这修复了运行时错误,代码恢复正常。

从Excel中检索数据

一个例子是…

 Option Explicit Sub ExcelData() Dim xlApp As Object ' Application Dim xlBook As Object ' Workbook Dim xlSht As Object ' Worksheet Dim FilePath As String FilePath = "C:\Temp\Book1.xlsx" Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(FilePath) Set xlSht = xlBook.Sheets("Sheet1") With ActiveDocument .Content = xlSht.Range("A1").Value End With xlApp.Visible = True Set xlApp = Nothing Set xlBook = Nothing End Sub