我正在创建一个excel表,它需要能够以十进制格式接收参数列表(不同大小,有符号和无符号),并从中生成一个十六进制字符串。然而问题是字符串中的参数需要是小端,而字符串本身将是大端。我正在使用VBA来做这件事,但我对它很陌生并且遇到了困难。我想在将其添加到字符串之前需要交换每个参数的endianess。我看过这个网站和网站,并没有找到任何简单的解决方案,我猜猜应该是一个简单的问题。如果有人有任何建议,将不胜感激。
到目前为止,我生成字符串的代码如下所示:
Sub Generate_String()
Dim funcset As String
Dim y As String
x = 0
z = 0
funcset = ""
'while variant column is not empty
Do While ((Trim(Cells(2, 4 + z).Value) <> "") And (Trim(Cells(2, 4 + z).Value) <> "0"))
Do
'check if last cell in the column
If Trim(Cells(4 + x, 1).Value) = "VALUE" Then
'convert cell contents to hex
y = Hex(Cells(3 + x, 4 + z).Value)
'add the converted value to the string
funcset = funcset + "0x" + y
x = x + 1
Else
'convert cell contents to hex
y = Hex(Cells(3 + x, 4 + z).Value)
'add the converted value to the string
funcset = funcset + "0x" + y + " "
x = x + 1
End If
' continue until end of column is reached
Loop While Trim(Cells(3 + x, 1).Value) <> "VALUE"
'write the string to corresponding cell
Cells(3 + x, 4 + z).Value = funcset
funcset = ""
x = 0
z = z + 1
Loop
End Sub
以下是一些示例数据: 数据生成了一个字符串,但尚未进行endianess交换
答案 0 :(得分:0)
我不知道VBA,但这是我要遵循的算法。
for each parameter in parameter_list
for i = 1 to (number of bytes in parameter type)
append 2-character hex value of (parameter mod 256) to string
parameter = parameter / 256
如果VBA语法与Excel函数类似,我认为您可以在,2
函数调用中添加第二个参数HEX()
,以强制它使用2个字符。