我正在尝试编写代码:
到目前为止,我已经能够很容易地找出#1和#3。我认为#2需要使用Selection类。我一直试图熟悉它,但我遇到了很多麻烦。例如,我编写了一个简单的子程序,它将选择光标重置为word文档的开头。从Excel VBA中的主子调用此子。
Private Sub FindHeadings()
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open("C:/Users/c11145/Desktop/SSDD_Trace/Test3.docx")
'wrdDoc.Selection.HomeKey Unit:=wdStory
Selection.HomeKey Unit:=wdStory
End Sub
我收到运行时错误“438”:对象不支持此属性或方法。
我也尝试过:
Dim sel As Selection
sel.HomeKey Unit:=wdStory
但是我得到了运行时错误91。
答案 0 :(得分:2)
我认为您需要对Selection
进行限定,因为这也是Excel中的可用类。
我很确定每当一个类名可能被多个库共享时,最短的引用(即活动应用程序)是默认的,所以除非你符合资格Selection
,否则总是会引用Excel选择(形状,单元格/范围等)
当我在Word(而非Excel)中运行非常简单的东西时,我认为这可以满足您的需求:
Sub test()
Dim wrdDoc As Word.Document
Dim wrdApp As Word.Application
Set wrdDoc = ActiveDocument
Set wrdApp = wrdDoc.Parent
wrdApp.Selection.HomeKey Unit:=wdStory
End Sub
将此移植到Excel,尝试将Selection
视为wrdApp
的成员:
wrdApp.Selection.HomeKey Unit:=6 'wdStory
我使用6
而不是枚举常量wdStory
的原因是因为后者将失败,除非您使用早期绑定与Word对象模型的显式引用。如果你没有进行早期绑定,那么wdStory
本质上是一个具有empty
值的未声明变量,它会引发一个错误的参数"那条线上的错误。