在Excel文件中查找字符串并获取行索引

在Excel文件中查找字符串并获取行索引,excel,vba,ms-word,Excel,Vba,Ms Word,我试图通过Word访问Excel文件并搜索字符串 我尝试获取整行(例如:我在单元格A7中查找字符串“Hello world”,然后尝试获取第7行中的所有日期),然后将该信息放入Word文件中的某个精确位置 以下是Excel文件的一个示例: No site trig type 1 steve stv 7 2 Nancy nco 3 等等

我试图通过Word访问Excel文件并搜索字符串

我尝试获取整行(例如:我在单元格A7中查找字符串“Hello world”,然后尝试获取第7行中的所有日期),然后将该信息放入Word文件中的某个精确位置

以下是Excel文件的一个示例:

No       site           trig           type 
1        steve          stv            7
2        Nancy          nco            3
等等

我试图搜索Excel文件中的标题是否是我所需要的,然后找到字符串(应该在这里)并获取行索引以获取整行,但是出现了一个错误,表明find方法存在问题

Set ra = Cells.Find(What:="SLD", LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False) 'there is a pb with find
单元格
是Excel应用程序对象的一部分,而不是Word vba环境的一部分,因此您需要像上面那样对其进行限定

Dim ra As Object 'not Range

Set ra = xlBook.Sheets(1).Cells.Find(What:="SLD", LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)

谢谢你的回答。它改进了我的代码。尽管如此,我还是遇到了另一个错误:将ra设置为范围集ra=xlBook.Sheets(1).Cells.Find(What:=“SLD”,LookIn:=xlFormulas,LookAt:=xlPart,SearchOrder:=xlByRows,SearchDirection:=xlNext,MatchCase:=“False,SearchFormat:=False)”“如果ra为空,则MsgBox“未找到”,则有一个带有Find的pb”Else MsgBox ra.Address“它表示方法或数据成员未找到结束,如果并且由于我无法访问地址,我无法复制行
Dim ra As Object
Dim ra As Range
-如果在Word的VBA环境中使用
Range
则假定您的意思是
Word.Range
Excel.Range
单词
范围
对象没有
地址
属性,因此它工作得更好。这里是:Dim ra as Object Set ra=xlBook.Sheets(1).Cells.Find(What:=“SLD”)“在没有其他参数msgbox ra.address”的情况下工作,只是为了确保它工作。我唯一要注意的是,不要将其他参数用于
Find()
,这些参数默认为上次使用的设置。i、 e.如果您以前使用
xlWhole
搜索某个内容,则VBA将使用该内容,除非您通过提供该参数另行指定。
Dim ra As Object 'not Range

Set ra = xlBook.Sheets(1).Cells.Find(What:="SLD", LookIn:=xlFormulas, LookAt _
    :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
    False, SearchFormat:=False)