注册 登录
编程论坛 VB6论坛

word文档,查找文本框里的内容,找到后如何得到在第几页?vb如何实现

lhj1860 发布于 2018-03-22 09:23, 4521 次点击
word文档,查找多页文本框里的内容,找到后如何得到在第几页?有能直接得到第几页的语句吗?例如在附件中查找文本框里“李四”所在页值。
查找用的语句:               
        With MyRange.Find
                .Text = “李四”
                MyRange.Find.Execute
                .Forward = True
            End With


我知道,如何查找多页不在文本框里的内容,可以用以下句子得到
Set MyRange = ActiveDocument.Content
当前页 = MyRange.Information(wdActiveEndPageNumber)
6 回复
#2
xiangyue05102018-03-22 11:36
说实话你的表述实在有点看不懂。
你试试这个代码,是不是你要的效果
程序代码:

Sub GetRowIdByFind()
  Dim myRange As Range
    Set myRange = ActiveDocument.Content
    myRange.Find.Execute FindText:="查找的内容", Forward:=True
     If myRange.Find.Found = True Then
        MsgBox "你要找的内容在:第[" & myRange.Information(wdActiveEndPageNumber) & "]页,第[" & myRange.Information(wdFirstCharacterLineNumber) & "]行"
    End If   
End Sub
#3
lhj18602018-03-22 14:40
只有本站会员才能查看附件,请 登录
老师,你的那个代码,我试过那个能查找到word里字符串,我想找的是WORD里文本框里的字符串,并得到该页的页数值。可以看下附件里的例子。谢谢啦
#4
lhj18602018-03-22 14:41
回复 2楼 xiangyue0510
老师,你的那个代码,我试过那个能查找到word里字符串,我想找的是WORD里文本框里的字符串,并得到该页的页数值。可以看下附件里的例子。谢谢啦
只有本站会员才能查看附件,请 登录
#5
xiangyue05102018-03-22 16:06
不要叫什么老师。谈不上。大家都是VB爱好者,共同学习和交流
如果是文本框的话,可以遍历文本框
  ShapesCount = WordApp.ActiveDocument.Shapes.Count

      If ShapesCount > 0 Then
       For i = 1 To ShapesCount
        If WordApp.ActiveDocument.Shapes(i).Type = 17 Then
         WordApp.ActiveDocument.Shapes(1).Select
         '在Selection中进行查找,这个不用给我说了吧,或者将文本读取到变量中用instr判断也可以
         MsgBox Selection.Information(wdActiveEndPageNumber)
        End If
       Next
      End If
忘记说了,这个返回的应该是文本框的页码,如果文本框跨页,可能就不是正好你要找的文本的那一页了。

[此贴子已经被作者于2018-3-22 16:08编辑过]

#6
lhj18602018-03-22 21:08
回复 5楼 xiangyue0510
1.WordApp申明为什么类型?是dim WordApp as Object  ,还是Dim WordApp As New Word.Application,还是就写dim WordApp?
2.   Dim myObject1 As Object
     Set myObject1 = ActiveDocument.Shapes(1).TextFrame.TextRange
     ShapesCount = myObject1.ActiveDocument.Shapes.Count
我想得到文本框数目,这样写对吗?
#7
xiangyue05102018-03-23 11:28
以下是引用lhj1860在2018-3-22 21:08:30的发言:

1.WordApp申明为什么类型?是dim WordApp as Object  ,还是Dim WordApp As New Word.Application,还是就写dim WordApp?
2.   Dim myObject1 As Object
     Set myObject1 = ActiveDocument.Shapes(1).TextFrame.TextRange
     ShapesCount = myObject1.ActiveDocument.Shapes.Count
我想得到文本框数目,这样写对吗?

1.WordApp申明为什么类型?是dim WordApp as Object  ,还是Dim WordApp As New Word.Application,还是就写dim WordApp?
有区别么?
2. myObject1.ActiveDocument.Shapes.Count这个没试过,你可以试试。再不行就循环遍历的笨办法呗。i=i+1
VB是面向对象的编程,你用到的word application那就去看这个类有什么属性、动作、子类。然后再去编程。
VB或者VBA界面下对象浏览器窗口(F2)中搜索就可以看到了
1