Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba:偏移量不';无法从Excel文档中的Word脚本工作_Vba_Excel_Ms Word - Fatal编程技术网

vba:偏移量不';无法从Excel文档中的Word脚本工作

vba:偏移量不';无法从Excel文档中的Word脚本工作,vba,excel,ms-word,Vba,Excel,Ms Word,我有一个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 = Act

我有一个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”,并显示消息“编译错误:找不到方法或数据成员”。我做错了什么

非常感谢您提前了解这一点

Word本身有一个“Range”对象,因此当您将
Dim c声明为Range时
c被创建为Word.Range对象,它没有偏移属性。因此,您有两种解决问题的方法:

  • 只需声明c为变量:
    Dim c为变量

  • 创建一个MS Excel引用并用它声明变量:

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

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


  • 太好了,问题解决了。非常感谢你!