VBA Excel ascii到十六进制

VBA Excel ascii到十六进制,excel,vba,hex,ascii,Excel,Vba,Hex,Ascii,我在使用VBA进行ascii到十六进制转换时遇到问题。我需要转换一个字符串,它将字母和数字组合成十六进制。 但是,我的代码只转换字符串的大约一半 我在A1中有以下刺:BFEBFBFF000406E3 我填写的代码是A6:424645424646400000000000000000 我正在使用检查它是否正常,在那里它被翻译为:4246454246463030303430364533DA 请问我有什么错 Sub strg() Dim strg As String Dim tmp As String

我在使用VBA进行ascii到十六进制转换时遇到问题。我需要转换一个字符串,它将字母和数字组合成十六进制。 但是,我的代码只转换字符串的大约一半

我在A1中有以下刺:BFEBFBFF000406E3

我填写的代码是A6:424645424646400000000000000000

我正在使用检查它是否正常,在那里它被翻译为:4246454246463030303430364533DA

请问我有什么错

Sub strg()

Dim strg As String
Dim tmp As String

strg = Worksheets("List1").Range("A1")
Worksheets("List1").Range("A5").Value = strg

tmp = ""
For I = 1 To Len(strg)
  tmp = tmp & hex((Asc(Mid(strg, I, 1))))
Next


Worksheets("List1").Range("A6").Value = tmp

End Sub

感谢您的帮助。

工作表(“列表1”).Range(“A6”).NumberFormat=“@”&tmp工作得很好,谢谢Scott Craner

下一个循环的
不应该有
步骤2
以便一次读取2个字符吗?看起来字符串转换为双精度,将数字截断为15位。在前面添加一个引号:
.Value=Chr(39)&tmp
或将
工作表(“列表1”).Range(“A6”).NumberFormat=“@”
,然后将
tmp
分配给单元格。我想您指的是
HexEncode
页面。当我运行它时,结果不包括末尾的
DA
。而且,由于
tmp
包含正确的结果,上面两个将结果作为
text
写入单元格的选项中的任何一个都应该起作用。十六进制的DA是13(ASCII回车符)和10(ASCII换行符),因此您从复制粘贴到该网页的字符串的任何位置拾取行尾标记。