VBA Excel ascii到十六进制
我在使用VBA进行ascii到十六进制转换时遇到问题。我需要转换一个字符串,它将字母和数字组合成十六进制。 但是,我的代码只转换字符串的大约一半 我在A1中有以下刺:BFEBFBFF000406E3 我填写的代码是A6:424645424646400000000000000000 我正在使用检查它是否正常,在那里它被翻译为:4246454246463030303430364533DA 请问我有什么错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
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换行符),因此您从复制粘贴到该网页的字符串的任何位置拾取行尾标记。