Office 2007:如何在 Word 宏中对 Excel 表格进行排序

Office 2007:如何在 Word 宏中对 Excel 表格进行排序

我在 WinWord2007 中编写了一个宏,它在 Excel 表中列出了样式及其属性。该表可通过以下 3 行访问:

Dim Oxl_Sheet As Object
Set Oxl_Sheet = CreateObject("Excel.Sheet")
Oxl_Sheet.Application.Visible = True

我可以毫无问题地写入表格的各个单元格,例如:

Oxl_Sheet.Application.Cells(iRow, 2).Value = ActiveDocument.Styles.(iStyle).NameLocal

我现在想在同一个 Word 宏中对已完成的表格进行排序,但我发现自己完全无法做到这一点。例如,在以下行中:

Oxl_Sheet.Application.Sort.SortFields.Add Key:=Range("I2:I356"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

编译器抱怨 Sub/Function“Range”尚未定义。

有人可以给我提示吗?

答案1

进行一些更改即可开始运行:

1) 如果您想要在宏运行之后保留 Excel 表,请移动该行:

Dim Oxl_Sheet 作为对象

到宏页面的顶部,在任何功能之外。

2)为了修复编译错误,请包含对 Excel 库的引用来定义范围函数:

  • 在 VBA 编辑器中,“工具”->“参考...”
  • 选择“Microsoft Excel <12.0 或 14.0> 对象库

3)更改排序行的语法以限定范围引用的对象:

Oxl_Sheet.Application.Sort.SortFields.添加键:=Oxl_Sheet.Application.Range("I2:I356"), SortOn:=xlSortOnValues

相关内容