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函数

  1. A1 =“一些string”
  2. A2 = “= MID($ A $ 1,列(A2),1)”
  3. 将单元格A2中的公式拖到右侧。 拖到some string例子K2。
  4. A3 = “= CODE(A2)”
  5. 将单元格A3中的公式拖到右侧。 拖到K3的some string例子。
  6. A4 = “= A3”
  7. B4 = “= CONCATENATE(A4,B3)”
  8. 将单元格B4中的公式向右拖动。 拖到单元格K4的some string例子。
  9. 第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个字符 。