ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] word VBA能操控这些特殊字符吗?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-2-24 16:57 | 显示全部楼层 |阅读模式
本帖最后由 weiyingde 于 2021-2-24 17:01 编辑

我们知道在用VBA实现可以读取word中的文本,或向文档输入文本。
可用ASC读取文本的字符数字代码,再用chr函数向文档输入字符,或直接在代码中写入字符。
可是下面这戏特殊字符,用ASC获取的全部是63,这是“?”的数字代码,将这些文本复制在代码中,全部都是“?”,这也就是说,VBA不能识别他们。可是若是在VBA要处理它们,该怎么办?
请大侠解惑,支招。
先谢了!!
用下面可以验证。
Sub 获取代码()
Dim par As Paragraph
With ActiveDocument
For Each par In .Paragraphs
    For Each cha In par.Range.Characters
        If Asc(cha) <> 63 Then
           If Asc(cha) <> 13 Then MsgBox Asc(cha) & "  " & cha
        End If
    Next
Next
End With
End Sub
&#9655;&#9665;&#9828;&#9825;&#9826;&#9831;&#9654;&#9664;&#9824;&#9829;&#9830;&#9827;&#9788;&#9789;&#9786;&#9680;&#9745;&#10004;&#9756;&#9757;&#9758;&#9728;&#9790;&#9785;&#9681;&#9746;&#10008;&#9754;&#9759;&#9755;&#9642;&#8226;&#9617;&#9618;&#9833;&#9834;&#9835;&#9836;&#12348;&#1758;&#8471;&#174;&#169;&#9837;&#9839;&#9838;&#182;&#9644;&#8482;&#13255;&#9740;&#9741;&#9739;&#9738;&#12927;&#9710;&#9706;&#9684;&#9685;&#9800;&#9801;&#9802;&#9803;&#9804;&#9806;&#9807;&#9808;&#9809;&#9811;&#9810;&#9805;&#9640;&#9636;&#9639;&#12964;&#9641;&#9638;&#9637;&#12967;&#12965;&#12968;&#9779;&#9775;&#9777;&#9643;&#9672;&#9635;&#12966;&#9782;&#9781;&#9776;&#9643;&#9672;&#9635;&#12966;&#8597;&#8596;&#8881;&#8923;&#8908;&#8922;&#8880;&#172;&#8224;&#8225;&#10034;&#10056;&#10057;&#10047;&#10048;&#10051;&#10049;&#9784;&#10006;&#10010;&#10026;&#10084;&#4326;&#10086;&#10087;&#3007;&#8362;&#9997;&#9996;&#9985;&#9988;&#9729;&#9730;&#9731;&#9732;&#9832;&#9735;&#9736;&#9761;&#10167;&#8889;&#9993;&#9743;&#10009;&#10015;&#9764;&#9765;&#9766;&#9767;&#9768;&#9771;&#9998;&#9772;&#9823;&#9817;&#9820;&#9814;&#9822;&#9816;&#9821;&#9815;&#9819;&#9813;&#9818;&#9812;
&#171;&#187;&#8249;&#8250;&#161; &#191;
&#9322;&#9323;&#9324;&#9325;&#9326;&#9327;&#9328;&#9329;&#9330;&#9331;&#10102;&#10103;&#10104;&#10105;&#10106;&#10107;&#10108;&#10109;&#10110;&#10111;
&#8709;&#8706;&#8710;&#8713;&#8748;&#8749;&#8321;&#8322;&#8323;&#189;&#8531;&#8532;&#188;&#190;&#3647;&#8352;


怎样处理和操控word VBA 无法识别的字符.rar

20.81 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2021-2-24 20:59 | 显示全部楼层
Word.Selection.Find.Execute FindText:=arr(i, 4), Forward:=True '查找关键字
        p = Word.Selection.Information(wdActiveEndPageNumber) '获取关键字所在页码
p这句一直报错,楼主研究过没?

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-25 12:24 | 显示全部楼层
约定的童话 发表于 2021-2-24 20:59
Word.Selection.Find.Execute FindText:=arr(i, 4), Forward:=True '查找关键字
        p = Word.Select ...

不知大侠要这句干吗。

TA的精华主题

TA的得分主题

发表于 2021-2-25 14:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
weiyingde 发表于 2021-2-25 12:24
不知大侠要这句干吗。

用excel的VBA去word文件查找excel里面的关键字,然后得出关键字在word里面的页码数字

TA的精华主题

TA的得分主题

发表于 2021-2-25 22:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
试试用AscW函数获取其字符编码

TA的精华主题

TA的得分主题

发表于 2021-2-25 22:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
约定的童话 发表于 2021-2-24 20:59
Word.Selection.Find.Execute FindText:=arr(i, 4), Forward:=True '查找关键字
        p = Word.Select ...

wdActiveEndPageNumber是Word VBA的一个常量名,其值为3,在Excel VBA中调用Word VBA时,应使用枚举常量值,而不是用常量名作参数,当然可以先对常量赋值再用。

TA的精华主题

TA的得分主题

发表于 2021-2-25 23:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
* 魏老师:这些特殊符号,大致可以有两种方法应用它们。首先用下面语句先识别其代码:
MsgBox Asc(Selection) & "/" & AscW(Selection) 如果 Asc 的值全是 63,则改用 ascw 的值。
第一种:直接在代码中用 Chrw()输入;如:Selection.TypeText Text:=ChrW(9655)
第二种:光写 chrw 代码没用,还要配合字体,如:Unicode 字体;可以用录制宏获得代码,此处略。
像全角空格,平时我记得是 chr(-24159),今天,我用 ascw(selection)获取其值,又可表示为 chrw(12288)。

TA的精华主题

TA的得分主题

发表于 2021-2-26 08:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sylun 发表于 2021-2-25 22:59
wdActiveEndPageNumber是Word VBA的一个常量名,其值为3,在Excel VBA中调用Word VBA时,应使用枚举常量 ...

工具-引用那里勾选一下word就好了,代码是对的,可以得出数值

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-26 11:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
413191246se 发表于 2021-2-25 23:10
* 魏老师:这些特殊符号,大致可以有两种方法应用它们。首先用下面语句先识别其代码:
MsgBox Asc(Selecti ...

谢谢,有空看一下。

TA的精华主题

TA的得分主题

发表于 2021-2-27 11:00 | 显示全部楼层
约定的童话 发表于 2021-2-26 08:42
工具-引用那里勾选一下word就好了,代码是对的,可以得出数值

以为是指宏运行时语法出错。对于p值出现偏差的原因,可能要根据具体代码和实际文档来分析判断
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-24 01:12 , Processed in 0.037338 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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