如何将范围作为数组从 Excel 导入 Word 文档
How to import range as array, from Excel into Word document
我正在研究 VBA Word 宏来创建具有个性化 headers 的文档。
我有一个电子表格,其中包含要插入 Headers 的文本(每一行都应插入一个单独的页面)。
为此,我想将电子表格中的数据作为 Array
导入到 Word 中,以便让这些文本就位。
我写了一段代码来打开电子表格并使用Select
方法得到一个pre-defined 运行ge;我在尝试将此 Selection
传递给 Range
object 时出错。
错误信息是Runtime Error 13: Incompatible types
。
我添加了一个 If
循环以确保 Selection
不为空,而且它不是,因为每次我 运行 代码。
Sub main()
'Main procedure
Dim app_Excel As Excel.Application
Set app_Excel = CreateObject("Excel.Application")
Dim wbk_srce As Workbook
Set wbk_srce = app_Excel.Workbooks.Open("C:[=11=]_portolon\Dias.xlsm", , False)
Dim wsh_srce As Worksheet
Set wsh_srce = wbk_srce.Worksheets(3)
wsh_srce.Activate
cell_1 = CStr("A1")
cell_2 = CStr("D216")
Dim header_range As Range
wsh_srce.Range(cell_1, cell_2).Select
If Selection = Empty Then
Debug.Print ("error")
Else
Debug.Print ("good")
End If
Set header_range = Selection '<---Error
Dim header_array() As Variant
'header_array = header_range.Value
'Call add_readers
End Sub
注意:我只将 Microsoft Excel 16.0 Object 库添加到 VBA Word。
我怎样才能完成这项工作?
提前致谢,
蒂亚戈
Word 和 Excel 都有一个 Selection
对象,因此当您在 Excel 中引用一个选择时,您需要通过在它前面加上您的 Excel 应用程序来限定它变量,即 app_Excel.Selection
.
您还需要对两个应用程序共有的其他对象执行此操作,例如 Range
。 Word 会将 Dim header_range As Range
理解为 Word.Range
,因此将 Excel 中的选择分配给它是行不通的。
我正在研究 VBA Word 宏来创建具有个性化 headers 的文档。 我有一个电子表格,其中包含要插入 Headers 的文本(每一行都应插入一个单独的页面)。
为此,我想将电子表格中的数据作为 Array
导入到 Word 中,以便让这些文本就位。
我写了一段代码来打开电子表格并使用Select
方法得到一个pre-defined 运行ge;我在尝试将此 Selection
传递给 Range
object 时出错。
错误信息是Runtime Error 13: Incompatible types
。
我添加了一个 If
循环以确保 Selection
不为空,而且它不是,因为每次我 运行 代码。
Sub main()
'Main procedure
Dim app_Excel As Excel.Application
Set app_Excel = CreateObject("Excel.Application")
Dim wbk_srce As Workbook
Set wbk_srce = app_Excel.Workbooks.Open("C:[=11=]_portolon\Dias.xlsm", , False)
Dim wsh_srce As Worksheet
Set wsh_srce = wbk_srce.Worksheets(3)
wsh_srce.Activate
cell_1 = CStr("A1")
cell_2 = CStr("D216")
Dim header_range As Range
wsh_srce.Range(cell_1, cell_2).Select
If Selection = Empty Then
Debug.Print ("error")
Else
Debug.Print ("good")
End If
Set header_range = Selection '<---Error
Dim header_array() As Variant
'header_array = header_range.Value
'Call add_readers
End Sub
注意:我只将 Microsoft Excel 16.0 Object 库添加到 VBA Word。
我怎样才能完成这项工作?
提前致谢,
蒂亚戈
Word 和 Excel 都有一个 Selection
对象,因此当您在 Excel 中引用一个选择时,您需要通过在它前面加上您的 Excel 应用程序来限定它变量,即 app_Excel.Selection
.
您还需要对两个应用程序共有的其他对象执行此操作,例如 Range
。 Word 会将 Dim header_range As Range
理解为 Word.Range
,因此将 Excel 中的选择分配给它是行不通的。