excel:如何将单元格内容分解为CODE
有一个代码函数为每个字母返回ASCII。
我想用它来分解单元格a1 = "some string"
进入它的ASCII码:
像这样的东西:“ 23423423434634
”
对不起,我不知道确切的ASCII,但你明白我的意思。
请注意,我想用公式来做这个,而不是用VBA
一种方法是使用字节数组为每个字符提供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
编写一个Excel 用户定义函数 。
该函数的伪代码如下所示:
string returnValue; for each ( char c in string) returnValue = returnValue + Chr(char) return returnValue
你可以调用UDF作为excell公式的一部分
=StringToASCIICodeValues(A1)
公式版本
你可以用excel内置公式来手动执行( excel没有公式的for-loop函数 )
- A1 =“一些string”
- A2 = “= MID($ A $ 1,列(A2),1)”
- 将单元格A2中的公式拖到右侧。 拖到
some string
例子K2。 - A3 = “= CODE(A2)”
- 将单元格A3中的公式拖到右侧。 拖到K3的
some string
例子。 - A4 = “= A3”
- B4 = “= CONCATENATE(A4,B3)”
- 将单元格B4中的公式向右拖动。 拖到单元格K4的
some string
例子。 - 第4行最右边的一列包含最终值。 对于
some string
,它将返回:单元格K4中的11511110910132115116114105110103
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个字符的string(创buildhexascii代码):
=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))),"")
对于较长的string,您可以重复这种模式,尽pipe您将受限于Excel允许的最大公式长度, 这似乎是8,192个字符 。