当前位置: 首页 > news >正文

Word中VBA提取人名所在的页码

这两天在整理万千人的《昨天军统》的博客内容,整理有1200多页。为方便查找各历史人物所在的位置,我把WORD中写了一小段VBA代码,用于提取其所在的页码。
效果很不错,几乎达到了我所想要的效果。

演示

代码备存如下:

点击查看代码
Function SearchNameinPages(name$) As String
Dim o As Paragraph
Dim curPage$, prevPage$, result$If Len(name) <= 1 Then Exit Function '太短的不检索Application.ScreenUpdating = False  '禁用屏幕更新可极大加快速度
ActiveDocument.Paragraphs(1).Range.SelectFor Each o In ActiveDocument.Paragraphs
If InStr(o.Range.Text, name) > 0 Theno.Range.SelectcurPage = Selection.Information(wdActiveEndAdjustedPageNumber) '得到当前选择的段落所在的页码If curPage <> prevPage Then '有时一页中多个段落出现,只保留一个页码result = result & " " & curPage '用空格分隔prevPage = curPageEnd If
End If
Next oSelection.EndKey Unit:=wdStory '跳到文件末尾
Application.ScreenUpdating = True
SearchNameinPages = result
End FunctionSub SearchIt()
'在自定义界面中 指定该宏的快捷键为ALT+CTRL+N
Dim str$, FunctResult$
str = InputBox("请输入要查询的人名,不短于两个字", "输入:")
If str = "False" Then Exit Sub
FunctResult = SearchNameinPages(str)
ActiveDocument.Paragraphs.Add
Selection.TypeText Text:=str & vbCrLf & FunctResult
End Sub
http://www.hskmm.com/?act=detail&tid=418

相关文章:

  • Ubuntu 安装 VSCode
  • A
  • ARC
  • 【2024-2025第二学期】助教工作学期总结
  • Ubuntu 安装 Git
  • systemctl命令
  • 对抗样本
  • 知识蒸馏
  • ssh相关问题
  • CSP 2025 游记
  • KVM虚拟机快照链创建,合并,删除及回滚研究
  • 第一次学dij qwq(p4779
  • 1
  • 2025—2026 赛季记录
  • AI编程新范式:从Coding到Vibe Coding,你准备好了吗?
  • Ubuntu 安装搜狗输入法
  • KD-Tree
  • yyjj
  • 今日随笔
  • 摆放类状压DP基础题
  • 使用 Visual Studio 2022 创建动态库和静态库 - Invinc
  • 软件
  • Laravel PHP 忘记密码如何重置(创建新管理员账号)
  • 打工人必看!昆工MBA“项目管理”杀疯了
  • 第一章 逻辑代数基础 - Wisdom
  • DVectorT虐哭ListT
  • 201912_BUUCTF_Base64隐写
  • 软考达人-案例分析
  • kettle插件-sqlserver cdc插件,从sqlserver获取实时数据so easy,早早下班
  • golang netpoll 底层原理