vba:偏移不适用于Excel doc中的Word脚本

时间:2014-10-19 11:21:47

标签: vba excel-vba word-vba excel

我有一个Word文档应该打开Excel文档,找到范围中的第一个空单元格并开始用信息填充一些单元格。因此,我想使用Offset,但由于某种原因,它会使Offset出错。这是代码的相关部分:

Sub ExcelDoc()

Dim XLapp As Object
Dim objExcelDoc As Object
Dim objOverzicht As Object
Dim c As Range

'Set objOverzicht
Set objOverzicht = ActiveDocument

'Set XLapp and objExcelDoc
Set XLapp = CreateObject("Excel.Application")
XLapp.Visible = False
Set objExcelDoc = XLapp.Documents.Open("C:\Document.xlsm")

'Set c
Set c = objExcelDoc.Sheets("Overzicht").Range("B3")
    Do
    Set c = c.Offset(1, 0)
    Loop Until c = ""

当我运行代码时,它会标记" .Offset"并显示消息"编译错误:找不到方法或数据成员"。我在这里做错了什么?

非常感谢您对此进行调查!

1 个答案:

答案 0 :(得分:1)

Word本身有一个"范围"对象,因此当您声明Dim c As Range c创建为Word.Range对象时,它没有Offset属性。所以你有两种解决问题的方法:

  1. 只需将c声明为变体:Dim c as Variant

  2. 制作MS Excel参考并用它声明变量:

    2.1在VBA编辑器中,转到工具 - >参考并打开" Microsoft Excel XX.X对象库"

    2.2使用引用声明变量:Dim c as Excel.Range