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

wps英文标点转为中文标点 宏脚本

Sub ReplaceEnglishPunctuationToChinese()
' 声明变量
Dim doc As Document
Set doc = ActiveDocument

' 关闭屏幕更新,提升运行速度
Application.ScreenUpdating = False

On Error GoTo ErrorHandler ' 错误处理

' ========== 核心替换逻辑:英文标点 → 中文标点 ==========
' 1. 英文句号 . → 中文句号 。
doc.Content.Find.Execute FindText:=".", ReplaceWith:="。", Replace:=wdReplaceAll
' 2. 英文逗号 , → 中文逗号 ,
doc.Content.Find.Execute FindText:=",", ReplaceWith:=",", Replace:=wdReplaceAll
' 3. 英文问号 ? → 中文问号 ?
doc.Content.Find.Execute FindText:="?", ReplaceWith:="?", Replace:=wdReplaceAll
' 4. 英文感叹号 ! → 中文感叹号 !
doc.Content.Find.Execute FindText:="!", ReplaceWith:="!", Replace:=wdReplaceAll
' 5. 英文分号 ; → 中文分号 ;
doc.Content.Find.Execute FindText:=";", ReplaceWith:=";", Replace:=wdReplaceAll
' 6. 英文冒号 : → 中文冒号 :
doc.Content.Find.Execute FindText:=":", ReplaceWith:=":", Replace:=wdReplaceAll
' 7. 英文双引号 " → 中文双引号 “”(需处理成对替换,避免单边)
Call ReplacePairedQuotes(doc, """", "“", "”")
' 8. 英文单引号 ' → 中文单引号 ‘‘’’(需处理成对替换)
Call ReplacePairedQuotes(doc, "'", "‘", "’")
' 9. 英文左括号 ( → 中文左括号 (
doc.Content.Find.Execute FindText:="(", ReplaceWith:="(", Replace:=wdReplaceAll
' 10. 英文右括号 ) → 中文右括号 )
doc.Content.Find.Execute FindText:=")", ReplaceWith:=")", Replace:=wdReplaceAll
' 11. 英文左方括号 [ → 中文左方括号 【
doc.Content.Find.Execute FindText:="[", ReplaceWith:="【", Replace:=wdReplaceAll
' 12. 英文右方括号 ] → 中文右方括号 】
doc.Content.Find.Execute FindText:="]", ReplaceWith:="】", Replace:=wdReplaceAll
' 13. 英文左大括号 { → 中文左大括号 {
doc.Content.Find.Execute FindText:="{", ReplaceWith:="{", Replace:=wdReplaceAll
' 14. 英文右大括号 } → 中文右大括号 }
doc.Content.Find.Execute FindText:="}", ReplaceWith:="}", Replace:=wdReplaceAll
' 15. 英文小于号 < → 中文小于号 <
doc.Content.Find.Execute FindText:="<", ReplaceWith:="<", Replace:=wdReplaceAll
' 16. 英文大于号 > → 中文大于号 >
doc.Content.Find.Execute FindText:=">", ReplaceWith:=">", Replace:=wdReplaceAll

' 恢复屏幕更新
Application.ScreenUpdating = True
MsgBox "英文标点已全部替换为中文标点!", vbInformation, "替换完成"

Exit Sub

ErrorHandler:
' 出错时恢复屏幕更新并提示
Application.ScreenUpdating = True
MsgBox "替换过程中出现错误:" & Err.Description, vbCritical, "错误"
End Sub

' 辅助函数:处理成对引号的替换(避免单边替换)
Sub ReplacePairedQuotes(doc As Document, englishQuote As String, chineseLeft As String, chineseRight As String)
Dim findRange As Range
Dim replaceCount As Integer
Dim isLeft As Boolean

Set findRange = doc.Content
replaceCount = 0
isLeft = True ' 标记当前是否替换为左引号

With findRange.Find
.ClearFormatting
.Text = englishQuote
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindStop ' 找到末尾停止
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False

' 逐个替换引号,交替使用左右引号
Do While .Execute
replaceCount = replaceCount + 1
If isLeft Then
findRange.Text = chineseLeft
Else
findRange.Text = chineseRight
End If
isLeft = Not isLeft ' 切换左右标记
findRange.Collapse wdCollapseEnd ' 折叠范围,继续查找下一个
Loop
End With
End Sub

 

image

http://www.jsqmd.com/news/194610/

相关文章:

  • 【论文自动阅读】Dream2Flow: Bridging Video Generation and Open-World Manipulation with 3D Object Flow
  • python如何实现类似C++一样调用动态库
  • 2026最新AI大模型学习指南:从零基础到进阶,附免费资源包(非常详细)AI大模型学习路线
  • Oracle 中 CHAR 和 VARCHAR 匹配不上?一次空格引发的问题(含 MySQL 对比)
  • 【Spring源码】getBean源码实战(七)——BeanPostProcessor与初始化方法
  • 华为OD机试真题 - 支持优先级队列 (C++ Python JAVA JS GO)
  • AI行业最后红利期:文科生转行完全指南,建议收藏反复研读,非常详细收藏我这一篇就够了
  • 【Spring源码】为什么需要 Aware、InitializingBean 和 init-method?
  • LLM推理加速方法-2025年终总结,非常详细收藏我这一篇就够了
  • 第一章—Linux新手入门:从零开始的初始化配置指南
  • JAX性能优化实战:7个变换让TPU/GPU吃满算力
  • 导师严选2026 AI论文软件TOP9:研究生开题报告必备测评
  • 大模型技术演进:从Chatbot到Agent的范式转移与实战指南(建议收藏)
  • 深度长文 | 什么是 AI 智能体的“上下文工程”?(从原理到 6 大支柱全解析)!
  • 华为OD机考双机位C卷 - 微服务的集成测试 (Java Python JS C/C++ GO )
  • 收藏必读:大模型架构演进全解析——从GPT-4到智能体的三大技术支柱
  • 华为OD机考双机位C卷 - 完美走位 (Java Python JS C/C++ GO )
  • Java分页查询方式总结
  • 喂饭级教程(番外篇)—— 在 K8s 上部署 Dify
  • 昆仑通态与东元N310变频器通讯实战之旅
  • 【教程】如何在电脑上安装dify
  • 研究生必备:7款AI写论文工具,半天搞定全文告别熬夜赶稿 - 麟书学长
  • alma 下 设置 nvidia nim 之 z-ai/glm4.7 或 minimax-m2.1
  • 辅酶Q10该怎么选?2026十大辅酶Q10品牌排行,第一名品质有目共睹 - 博客万
  • 毕业季必看!8款AI写论文神器实测:文理医工全覆盖,30分钟搞定初稿!
  • 中老年人别再乱买养生产品!这款维生素 B 族复配叶酸降同型半胱氨酸,改善认知超靠谱 - 博客万
  • Android 16安兔兔分辨率作假显示(非修改TextView方案)
  • 精益生产的两大支柱到底是什么?一文帮你搞清楚
  • 基于10部权威医疗电子书的医疗知识图谱构建数据集:包含18,297个结构化标记、37,381个医学实体、5,770个交叉引用关系和974个表格结构,支持疾病-药物关系抽取、临床决策系统开发
  • 360度VR全景设备技术测评与行业应用分析