ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

来个有点难度的:如何只查找中文字?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-7-26 17:30 | 显示全部楼层 |阅读模式
想实现:只查找中文字,不查中文标点,不查特殊符号。

TA的精华主题

TA的得分主题

发表于 2005-7-27 03:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

中文标点对于计算机来说=中文字!这一点好像无法实现。

你可以实现查找某一种格式的字体,或某一种语言。

TA的精华主题

TA的得分主题

发表于 2005-7-27 05:44 | 显示全部楼层

在WORD的插入符号中,有一个普通文本的CJK(CJK Unified Ideographs,C 指中国,J 指日本,K 指朝鲜)统一汉字子集,这是一个字符集合,始于“一”而止于“龥”,Unicode 2.0版中共20902个,通过它,WORD可以判断该字符是否是汉字。该字符也可以从开始菜单/程序/附件/系统工具/字符映射表中获得,当然,后者是WINDODWS的字符基础,决定了前者.

根据WORD查找通配符中[]原则,我们可以将字符集合纳入查找中,勾选通配符,查找项目中输入"[一-龥]",在突出显示所有在该范围内查找到的项目前勾选,点击查找全部,WORD将自动找到所有CJK统一汉字,而不在此序列(集合)中的字符,则不会被查找。

你可以可根据字符集进一步引申,或者任意指定某一升序范围中的字符集。

比如说查找标点符号,我们看一下符号中的广义标点集和CJK统一标点集,分别是"[‐-⁄]","[、-〩]",我们这里只是举例,告诉大家如何查找指定范围内任意单个字符.我们可以试着查找一下"[‐-⁄,、-〩]",当然,一部分中文标点不在此两个集合中,我们可以例举.

理论上说,中文简体字符GB2312的字符集是从CHR(-2050~-20319),即从"啊"开始到"齄"结束,共6763个汉字,但在实际查找中,如果以"[啊-齄]",则部分汉字将不被WORD识别,而如果从"[一-齄]"开始查找,也有部分汉字不被识别,如"齿,龚,龟"等等,换而言之,WORD中的查找汉字字符集,它的依据标准我认为还是以字符映射表为依据的CJK统一汉字字符集(插入/符号同).

OK,请大家一起来补充.

[此贴子已经被作者于2005-7-27 5:45:46编辑过]
E56AWDLl.bmp
qJtgktVB.bmp

TA的精华主题

TA的得分主题

发表于 2005-7-27 07:18 | 显示全部楼层
呵呵,原来老大把密秘公开了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-7-27 09:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-7-27 09:38 | 显示全部楼层

呵呵,老大的通配符也不太全啊!应为"[一-﨩]"

请教:如何得到一篇文章的最大asci值与最小asci值,这样查找时通配符就能缩小一下范围。 我用max(a,b)但不行,我的编程知识太少,做不出来。[em04]

老大,帮忙试试

TA的精华主题

TA的得分主题

发表于 2005-7-27 10:44 | 显示全部楼层
以下是引用konggs在2005-7-27 9:38:45的发言:

呵呵,老大的通配符也不太全啊!应为"[一-﨩]"

请教:如何得到一篇文章的最大asci值与最小asci值,这样查找时通配符就能缩小一下范围。 我用max(a,b)但不行,我的编程知识太少,做不出来。[em04]

老大,帮忙试试

呵呵,孔兄,您倒是认真看一下我的贴子,好吗?Unicode 2.0版中共20902个,3.0以后的版本有扩充.

WORD中的查找汉字字符集,它的依据标准我认为还是以字符映射表为依据的CJK统一汉字字符集(插入/符号)同,与字符ASC码无必然联系.

以下代码供参考:(于查找无益),只是应孔兄要求所做,如何取得中文(不仅指汉字)字符的最大ASC码.

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-7-27 10:41:21 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 0003^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub Example() '运行本代码前,请确认勾选了对于MICROSOFT EXCLE 10.0 OBJECT LIBRARY的引用(版本不同,有所不同) Dim MyArray() As Integer, ExlApp As New Excel.Application, i As Range Dim N As Long, MaxHzAsc As Integer On Error Resume Next '遍历每个字 For Each i In ThisDocument.Characters '如果为非西文字体 If Asc(i) < 0 Then '扩充数组 ReDim Preserve MyArray(N) '取得ASC码 MyArray(N) = Asc(i) ' Debug.Print MyArray(N) N = N + 1 '累加 End If Next '取得最大值(由于均为负数) MaxHzAsc = ExlApp.WorksheetFunction.Max(MyArray) Debug.Print Chr(MaxHzAsc) & MaxHzAsc ExlApp.Quit '退出EXCEL程序 Set ExlApp = Nothing '释放对象变量 End Sub '----------------------

TA的精华主题

TA的得分主题

发表于 2005-7-27 11:22 | 显示全部楼层

原来我是Unicode 3.0版,老大的图是2.0。

谢谢老大的代码,我试了,行的,把max改为min后就能求最小

TA的精华主题

TA的得分主题

发表于 2005-7-27 18:38 | 显示全部楼层
我还以为楼主不懂要问问呢,原来这是在出考题啊,见笑,班门弄斧了……不过我也学会了,在这儿转转还真长本事。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-21 23:30 , Processed in 0.047901 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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