乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > EXCEL VBA字母和ASCII代码转换问题?高手请进!

EXCEL VBA字母和ASCII代码转换问题?高手请进!

作者:乔山办公网日期:

返回目录:excel表格制作


'====================================
'名称: CSN
'功能: 把列 字母和数字相互转化(最大支持702,ZZ)
'====================================

Private Function CSN(Col)
Dim i, j, si, sj
If IsNumeric(Col) Then
j = Col Mod 26: i = (Col - j) / 26: If j = 0 Then j = 26
If i > 0 Then CSN = Chr(64 + i) & Chr(64 + j) Else CSN = Chr(64 + j)
Else
If Len(Col) = 1 Then sj = Col Else si = Mid(Col, 1, 1): sj = Mid(Col, 2, 1)
If si <> "" Then i = Asc(si) - 64
If sj <> "" Then j = Asc(sj) - 64
CSN = 26 * i + j
End If
End Function

第一个问题,楼上已经解答了,
a=-20318
b=chr(a)即可得zd到阿

第二个问题:
首先VBA中不支持Chrw(1606)这个阿拉伯字母,VBA始终将其显示为"?"
而ASC("?")是一直等于63的.所以只要是VBA不认识的字符都将以?代替
StrConv 函数

语法StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)

conversion 参数的设置值为:
常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中e799bee5baa6e78988e69d83330每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。

说明:在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv
函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。

一般而言,程序设计语言都只提供最基本的函数,其他可以通过这些基本函数组合应用获得结果的zhidao都不可能提供的,否则的话什么功能都由系统直接提供,世界上就不会有程序员这个职业了,“个性化”这个词也可以彻底扔掉了。


另外,像你说的这种需要返回多个结果的函数,你说应该用什么方式来返回?字符串还是数组?用字符串的话,数字之间用什么分隔?空格还是逗号?每个程序员都有不同的习惯,返回结果如果不合他意他就要再进行转换,所以像这样的无法进行规范化处理的函数,设计语言也绝不可能提供的,只能根据自己的喜好去自制函数了。

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网