EXCEL函数code 在VBA中实现对应功能的函数是?

[复制链接]
查看11 | 回复3 | 2010-7-19 20:29:58 | 显示全部楼层 |阅读模式
如题 VBA中用application.WorksheetFunction.code(Str) 无效
请问是否有替代函数?
如果要转换的是英文字母时,是没有问题的,但如果转换的是汉字时,得到的值就不一样了
例如:
EXCEL中单元格输入 =CODE("我") 结果是52946?
VBE中代码 msgbox Asc("我") 输出结果 -12590;msgbox AscW("我") 输出结果 25105
这是怎么回事?望解答!

回复

使用道具 举报

千问 | 2010-7-19 20:29:58 | 显示全部楼层
Asc 函数返回一个 Integer,代表字符串中首字母的字符代码。语法Asc(string)必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。说明在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
回复

使用道具 举报

千问 | 2010-7-19 20:29:58 | 显示全部楼层
16位unicode的上限就是2^16=65536而16位ASC码表示的范围则有限(我怀疑计算的是整型,-32767~32768超出范围的就只有通过变通的方法显示ASC值即52946-65536=-12590
回复

使用道具 举报

千问 | 2010-7-19 20:29:58 | 显示全部楼层
asc("a")就是这个函数,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行