当前位置: 首页 > 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.rkmt.cn/news/1269.html

相关文章:

  • ARC
  • Ubuntu 安装 Git
  • systemctl命令
  • 知识蒸馏
  • 第一次学dij qwq(p4779
  • 2025—2026 赛季记录
  • Ubuntu 安装搜狗输入法
  • 今日随笔
  • 摆放类状压DP基础题
  • DVectorT虐哭ListT
  • manim如何按绝对时间管理动画
  • Snapshot-based State Replication 基于快照的状态复制网络框架,快照同步
  • Transformer通俗讲解
  • Ubuntu 安装截图软件 flameshot
  • Kali连接postgreSQL失败(已解决)
  • 英语_阅读_water protection team_待读
  • Codeforces Round 1048 (Div 2)
  • 9.9日总结
  • GitHub Copilot代码审查大升级!路径级指令+组织级规范,开发者效率再提升!
  • SOS dp(高维前缀dp)
  • 微信消息模版推送
  • 抖音批量视频下载工具源码C#源码|自动提取DY视频的软件工具
  • AI 检测:精准攻克米饭盒质检难题,赋能食品生产
  • 2025年9月北京中学集训随笔
  • lc1022-从根到叶的二进制数之和
  • SIM /api/function/execute 代码执行漏洞
  • C#/.NET/.NET Core技术前沿周刊 | 第 53 期(2025年9.1-9.7)
  • 3
  • Ubuntu安装notary
  • 第一次作业:自我介绍+软工5问