| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 264 人关注过本帖
标题:word文档,查找文本框里的内容,找到后如何得到在第几页?vb如何实现
只看楼主 收藏
lhj1860
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-1
  问题点数:0  回复次数:6   
word文档,查找文本框里的内容,找到后如何得到在第几页?vb如何实现
word文档,查找多页文本框里的内容,找到后如何得到在第几页?有能直接得到第几页的语句吗?例如在附件中查找文本框里“李四”所在页值。
查找用的语句:               
        With MyRange.Find
                .Text = “李四”
                MyRange.Find.Execute
                .Forward = True
            End With


我知道,如何查找多页不在文本框里的内容,可以用以下句子得到
Set MyRange = ActiveDocument.Content
当前页 = MyRange.Information(wdActiveEndPageNumber)
2018-03-22 09:23
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:83
帖 子:895
专家分:5123
注 册:2015-8-10
  得分:0 
说实话你的表述实在有点看不懂。
你试试这个代码,是不是你要的效果
程序代码:

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
2018-03-22 11:36
lhj1860
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-1
  得分:0 
老师,你的那个代码,我试过那个能查找到word里字符串,我想找的是WORD里文本框里的字符串,并得到该页的页数值。可以看下附件里的例子。谢谢啦
附件: 您没有浏览附件的权限,请 登录注册
2018-03-22 14:40
lhj1860
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-1
  得分:0 
回复 2楼 xiangyue0510
老师,你的那个代码,我试过那个能查找到word里字符串,我想找的是WORD里文本框里的字符串,并得到该页的页数值。可以看下附件里的例子。谢谢啦
附件: 您没有浏览附件的权限,请 登录注册
2018-03-22 14:41
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:83
帖 子:895
专家分:5123
注 册:2015-8-10
  得分:0 
不要叫什么老师。谈不上。大家都是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编辑过]

2018-03-22 16:06
lhj1860
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-7-1
  得分:0 
回复 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
我想得到文本框数目,这样写对吗?
2018-03-22 21:08
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:83
帖 子:895
专家分:5123
注 册:2015-8-10
  得分:0 
以下是引用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)中搜索就可以看到了
2018-03-23 11:28







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.058802 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved