ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 相见是缘8

[求助] 把杂乱无章的符号及带圈序号按顺序排列

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 09:01 | 显示全部楼层
本帖最后由 相见是缘8 于 2023-5-15 09:03 编辑
batmanbbs 发表于 2023-5-15 08:47
没有听明白,你是不是想保留这个"䪼"字?

batmanbbs 老师,好!
3.png

TA的精华主题

TA的得分主题

发表于 2023-5-15 09:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
其实我在9楼就已经说了,有两处是直接控制识别乱码的,自己可以酌情修改。
根据你提供的新附件,我已修改完代码,不过代码审核需要时间,有空刷新一下吧,如果还有问题再跟帖。

TA的精华主题

TA的得分主题

发表于 2023-5-15 09:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 batmanbbs 于 2023-5-15 11:45 编辑

查了一下,这个字是CJK的扩充字符,所以没有在汉字集里面,我把这些扩充字符也放到识别汉字中了,代码在楼下

TA的精华主题

TA的得分主题

发表于 2023-5-15 10:05 | 显示全部楼层
  1. Sub 去乱码编序号()

  2.     Dim myPG As Paragraph
  3.     Dim oType%, No%, count%, i%, rStart&, rEnd&, RegEx$, rng$
  4.     Dim oRegEx As Object, myMatches As Object
  5.     Set oRegEx = CreateObject("VBSCRIPT.REGEXP")
  6.     With oRegEx
  7.         .IgnoreCase = False
  8.         .MultiLine = False
  9.         .Global = True
  10.     End With

  11.     RegEx = "[\uF022-\uF084]+|[^" & ChrW(13312) & "-﨩,、;。“”]+"
  12.     oType = 0: No = 0
  13.     For Each myPG In ActiveDocument.Paragraphs
  14.         With myPG.Range
  15.             rng = Left(.Text, Len(.Text) - 1)
  16.             If Trim(Len(rng)) <> 0 Then
  17.                 If Trim(rng) = "【原文】" Then
  18.                     oType = 1: No = 0
  19.                 ElseIf Trim(rng) = "【校注】" Then
  20.                     oType = 2: No = 0
  21.                 ElseIf Trim(rng) Like "【*】" Then
  22.                     oType = 0: No = 0
  23.                 ElseIf oType = 1 Then
  24.                     If rng Like "*[一-﨩]*" Then
  25.                         With oRegEx
  26.                             .Pattern = RegEx
  27.                             Set myMatches = .Execute(rng)
  28.                         End With
  29.                         count = myMatches.count
  30.                         If count > 0 Then
  31.                             No = No + count
  32.                             For i = count - 1 To 0 Step -1
  33.                                 rStart = .Start + myMatches(i).FirstIndex
  34.                                 rEnd = rStart + myMatches(i).Length
  35.                                 With ActiveDocument.Range(rStart, rEnd)
  36.                                     .Text = Chr(33 + (No - count + i + 1))
  37.                                     .Font.ColorIndex = wdRed
  38.                                     .Font.Bold = False
  39.                                     .Font.Name = "Numbers & Pinyin"
  40.                                 End With
  41.                             Next i
  42.                         End If
  43.                     End If
  44.                 ElseIf oType = 2 Then
  45.                     If Len(rng) >= 3 And rng Like "*[" & ChrW(13312) & "-﨩]*" Then
  46.                         For i = 1 To 3
  47.                             If .Characters(1) Like "[" & ChrW(13312) & "-" & ChrW(-4063) & ChrW(-3963) & "-﨩]" Then Exit For
  48.                             .Characters(1).Delete
  49.                         Next i
  50.                         No = No + 1
  51.                         .InsertBefore Chr(33 + No) & "、"
  52.                         With .Characters(1).Font
  53.                             .ColorIndex = wdRed
  54.                             .Bold = False
  55.                             .Name = "Numbers & Pinyin"
  56.                         End With
  57.                     End If
  58.                 End If
  59.             End If
  60.         End With
  61.     Next myPG

  62.     Set myPG = Nothing
  63.     Set oRegEx = Nothing
  64.     Set myMatches = Nothing

  65. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 14:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

batmanbbs 老师,好!
辛苦了!代码在 “附件” 上,运行OK,感谢老师!
自己酌情修改,唉!我还没有这个功力!
老师,这个CJK的扩充字符,我一点也不懂,你有这个 “CJK的扩充字符” 的全部编码吗?因文档里可能还有好多类似的字。以后我也经常会用到。

TA的精华主题

TA的得分主题

发表于 2023-5-15 14:49 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-5-15 15:05 编辑

是的,我们平时都是从4E00开始作为汉字的(如图1),你这个字是在扩充字里面,所以这次我将汉字字符集扩展到从3400开始(如图2),这样就能识别更多的不常见的扩充汉字了。
图一: image.png
图二: image.png

PS:编码问题和编程问题不是一回事,并不需要深厚的编程知识,和你上次想打"々"差不多,能查找到字符编码即可修改。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-15 17:09 来自手机 | 显示全部楼层
batmanbbs 发表于 2023-5-15 14:49
是的,我们平时都是从4E00开始作为汉字的(如图1),你这个字是在扩充字里面,所以这次我将汉字字符集扩展 ...

哦!感谢老师不厌其烦的指教!谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-5-16 09:41 | 显示全部楼层
batmanbbs 发表于 2023-5-15 14:49
是的,我们平时都是从4E00开始作为汉字的(如图1),你这个字是在扩充字里面,所以这次我将汉字字符集扩展 ...

batmanbbs 老师,好!
我看你的截图中,有 CJK统一汉字扩充A,我看了一下,我的没有(如图1),是不是我电脑中的 “字库” 的版本大低,能否劳你复制上转一个你电脑中的 “字体”(如图2)给我,谢谢!
另外,老师,你怎么对有拉选框的截图,不会让它宿回,还截这么清晰,能教教我吗?
1.png
2.png

TA的精华主题

TA的得分主题

发表于 2023-5-16 09:53 | 显示全部楼层
本帖最后由 batmanbbs 于 2023-5-16 10:03 编辑

宋体是最全的,应该有,点击向下箭头继续翻页
image.jpg
大概的位置
image.png


PS:你在字符代码的位置直接输入3400就能直接找到

TA的精华主题

TA的得分主题

发表于 2023-5-16 09:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QQ的截图呀,非常方便
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 04:18 , Processed in 0.041251 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表