ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

请教拼音转换的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-4-26 23:54 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

我原来在wps2000里插入的拼音现在想替换为用软键盘插入的那种的编码请问怎么做 谢谢

TA的精华主题

TA的得分主题

发表于 2007-4-27 09:07 | 显示全部楼层
WPS没有用过,不过WORD有个格式-》中文版式-》拼音指南,那个东西不知道是不是你想要的东西。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-27 11:33 | 显示全部楼层

wps2000里插入的字符好像不是一般的字符 就是说在一般的字库里没有他的编码似的 请高人指点 我是想把以前的转换为word里的 楼上说的只能重新输入麻烦啊

TA的精华主题

TA的得分主题

发表于 2007-4-29 15:20 | 显示全部楼层
QUOTE:
以下是引用tongyi在2007-4-27 11:33:20的发言:

wps2000里插入的字符好像不是一般的字符 就是说在一般的字库里没有他的编码似的 请高人指点 我是想把以前的转换为word里的 楼上说的只能重新输入麻烦啊

WPS2000中用的拼音字符是金山音标字体Kingsoft Phonetic Plain,它的内码不是Unicode内码。我不知你的WPS文件读入WORD后该字体是否会变,如不变,你只要在系统中再安装此字体就应该可以正确显示了。如果你一定要批量改成GB拼音字符,可编一个宏搞定。

如要求进一步解决,最好上传一附件,将源WPS文件和它读入WORD后文件一并传上来看看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-29 23:22 | 显示全部楼层

谢谢楼上朋友的解答 我看也是内码的问题 我用wps2005打开后另存为doc格式 如果有金山的字体可以正常现实但如果没有的话就不能正常现实了 所以我想把他们转换为word里的拼音附件在此 请多指教

WqI2yhDK.rar (1.87 KB, 下载次数: 8)


TA的精华主题

TA的得分主题

发表于 2007-4-30 11:15 | 显示全部楼层

试试下面的宏。

Sub King2GB()

  '仅针对金山音标中的拼音字符,其他字符还可自行添加
    Dim RepArray() As Variant, i As Byte   '定义数组
    Application.ScreenUpdating = False    '关闭屏幕更新以加快速度
    RepArray = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", _
      "t", "u", "v", "w", "x", "y", "z", "-", "¦", "\", "□", "□", "□", "ā", "á", "ǎ", "à", "ē", "é", "ě", "è", _
      "ī", "í", "ǐ", "ì", "ō", "ó", "ǒ", "ò", "ū", "ú", "ǔ", "ù", "ǖ", "ǘ", "ǚ", "ǜ")    '定义替换GB拼音字符
    With ActiveDocument.Content.Find         '在活动文档中循环查找替换
        For i = 1 To 56
            .ClearFormatting
            .Text = ChrW(61536 + i)                          '查找文本的字符码值
            .Font.Name = "Kingsoft Phonetic Plain"   '查找文本的字体
            .Replacement.Text = RepArray(i - 1)       '对应替换文本
            .Replacement.Font.Name = "宋体"           '替换文本的字体
            .Execute Replace:=wdReplaceAll             '全部替换
        Next
    End With
    Application.ScreenUpdating = True                   '打开屏幕更新
End Sub

本来12点多注释已写得差不多了,要放假了办公室突然断电,现补上。

[此贴子已经被作者于2007-4-30 13:36:03编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-30 12:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢ssq1109问题解决了 但不是很理解 可否注释下 方便大家学习

TA的精华主题

TA的得分主题

发表于 2007-4-30 12:07 | 显示全部楼层

实质为内码替换。替换的拼音字体如嫌“宋体”难看可改为“Times New Roman”。

补充注释见6楼。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-30 22:22 | 显示全部楼层

谢谢楼上朋友的解答 但我还是有几点不明白

1 word中的字符到底有那些类型 如:“ascii unicode  符号” ascii和unicode我了解点但那个“符号”是什么意思呢

2 .Text = ChrW(61536 + i)  '查找文本的字符码值   这句为什么chrw()里的61536呢 具体是什么意思

3     .Replacement.Text = RepArray(i - 1)       '对应替换文本      这句括号里 -1又是什么意思呢

非常感谢大家 的帮助 祝大家五一快乐

TA的精华主题

TA的得分主题

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

当ChrW(61536 + i)中i=1时即为ChrW(61537),即表示那个字符的字符码值为61537,余类推。你可WORD菜单“插入→符号”,再找到Kingsoft Phonetic Plain字体,随便点一个字符,再点击弹出菜单的“快捷键”,就可看到该字符对应的字符码值。

至于RepArray(i - 1),可看一下WORD中VBA相应的帮助文件,实为数组函数的问题。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 22:33 , Processed in 0.050877 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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