【问题标题】:How to retrieve data from Excel and add to Word如何从 Excel 中检索数据并添加到 Word
【发布时间】:2016-03-23 00:19:29
【问题描述】:

我有一个 Word 模板文件,它从 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。当我检查 Windows 数组时,它的元素为零,所以错误是正确的。

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

下一段代码尝试访问 Worksheets("mysheet"),如果我跳过 Visible = True 行访问工作表,则会得到 runtime error 1004.

任何解决此问题的帮助将不胜感激。

【问题讨论】:

    标签: excel vba ms-word office-2013


    【解决方案1】:

    为了使代码在 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
    

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

    【讨论】:

      【解决方案2】:

      从 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
      

      【讨论】:

      • 感谢代码示例,有趣的是它与我正在处理的代码有多么不同。在我的代码中获取工作表的最后一行是:设置 myWS = myXL.Application.Worksheets("Sheet1"),然后看起来很相似,尽管它在最后执行了 myXL.Quit 而不是更改可见性。跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多