Я создаю таблицу Excel, которая должна быть способна принимать список параметров (различных размеров, со знаком и без знака) в десятичном формате, и генерировать шестнадцатеричную строку из этого. Проблема, однако, заключается в том, что параметры в строке должны иметь порядок байтов, тогда как сама строка будет иметь порядок байтов. Я использую VBA для этого, но я новичок в этом и сталкиваюсь с трудностями. Я думаю, что мне нужно поменять порядком байтов каждого параметра, прежде чем добавить его в строку. Я посмотрел об этом сайте и в Интернете и не нашел каких-либо простых решений для того, что я думаю, должно быть простой проблемой. Если у кого-то есть какие-либо предложения, мы будем очень признательны.
Мой код для генерации строки показан ниже:
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
![The data has a string generated, but endianess swap has not been done](https://i.stack.imgur.com/TI6xF.jpg)