有一个代码函数可以为每个字母返回 ASCII。
我想以一种可以分解细胞的方式使用它a1 = "some string"
进入它的ASCII码:
像这样的东西:“ 23423423434634
”
抱歉,我不知道确切的 ASCII 但你明白我的意思。
请注意,我想专门使用公式而不是 VBA
有一个代码函数可以为每个字母返回 ASCII。
我想以一种可以分解细胞的方式使用它a1 = "some string"
进入它的ASCII码:
像这样的东西:“ 23423423434634
”
抱歉,我不知道确切的 ASCII 但你明白我的意思。
请注意,我想专门使用公式而不是 VBA
编写一个 Excel用户定义函数。
该函数的伪代码如下:
string returnValue;
for each ( char c in string)
returnValue = returnValue + Chr(char)
return returnValue
您可以将UDF称为 Excel 公式的一部分,例如
=StringToASCIICodeValues(A1)
您可以使用 excel 内置公式手动执行此操作(excel 没有公式的 for 循环函数)
some string
。some string
。some string
。some string
它将返回:11511110910132115116114105110103
在单元格 K4一种方法是使用字节数组为每个字符提供 Unicode 数字对:
Sub ByteArray()
Dim aByte() As Byte
Dim str1 As String<
Dim j As Long
str1 = "ABC"
aByte = str1
For j = LBound(aByte) To UBound(aByte)
MsgBox aByte(j)
Next j
End Sub
string someText = "some string";
CharEnumerator ce = someText.GetEnumerator();
int counter = 0;
while (ce.MoveNext())
{
char letter = someText[counter];
//Call the function to get the ascii
GetAsciiValue(letter);
//Do something
counter++;
}
可能这可能会帮助你。
问候, J'Sinh
虽然它很丑,但如果你的字符串不是太长,你可以使用一个长公式来转换每个字符,然后将它们重新连接在一起。
例如,这个公式可以处理长度不超过 20 个字符的字符串(创建十六进制 ascii 代码):
=if(len(A1)>=1,DEC2HEX(CODE(MID(A1,1,1))),"")&
if(len(A1)>=2,DEC2HEX(CODE(MID(A1,2,1))),"")&
if(len(A1)>=3,DEC2HEX(CODE(MID(A1,3,1))),"")&
if(len(A1)>=4,DEC2HEX(CODE(MID(A1,4,1))),"")&
if(len(A1)>=5,DEC2HEX(CODE(MID(A1,5,1))),"")&
if(len(A1)>=6,DEC2HEX(CODE(MID(A1,6,1))),"")&
if(len(A1)>=7,DEC2HEX(CODE(MID(A1,7,1))),"")&
if(len(A1)>=8,DEC2HEX(CODE(MID(A1,8,1))),"")&
if(len(A1)>=9,DEC2HEX(CODE(MID(A1,9,1))),"")&
if(len(A1)>=10,DEC2HEX(CODE(MID(A1,10,1))),"")&
if(len(A1)>=11,DEC2HEX(CODE(MID(A1,11,1))),"")&
if(len(A1)>=12,DEC2HEX(CODE(MID(A1,12,1))),"")&
if(len(A1)>=13,DEC2HEX(CODE(MID(A1,13,1))),"")&
if(len(A1)>=14,DEC2HEX(CODE(MID(A1,14,1))),"")&
if(len(A1)>=15,DEC2HEX(CODE(MID(A1,15,1))),"")&
if(len(A1)>=16,DEC2HEX(CODE(MID(A1,16,1))),"")&
if(len(A1)>=17,DEC2HEX(CODE(MID(A1,17,1))),"")&
if(len(A1)>=18,DEC2HEX(CODE(MID(A1,18,1))),"")&
if(len(A1)>=19,DEC2HEX(CODE(MID(A1,19,1))),"")&
if(len(A1)>=20,DEC2HEX(CODE(MID(A1,20,1))),"")
对于更长的字符串,您可以重复此模式,尽管您会受到 Excel 允许的最大公式长度的限制,这似乎是 8,192 characters。