我可以像這樣在 VBA 中宣告一個靜態位元組陣列,但似乎元素不是位元組型別。
Dim A As Variant
A = Array(&H9F, &H2C, &H3B, &HFF, &H84)
我可以通過將內容復制到第二個陣列來解決這個問題,但這對我來說看起來不是很有效。
Dim A As Variant
A = Array(&H9F, &H2C, &H3B, &HFF, &H84)
Dim N As Long: N = UBound(A)
Dim B() As Byte
ReDim B(N)
For X = 0 To N
B(X) = A(X)
Next
所以我的問題是:有沒有更好或更優雅的方法來做到這一點?
uj5u.com熱心網友回復:
好的,可能不是您正在尋找的解決方案,但是您可以將字串直接轉換為位元組陣列..
所以,對于你的例子,像這樣的東西(瘋狂)會起作用..
Dim bResult() As Byte
bResult = StrConv(Join(Array(Chr(&H9F), Chr(&H2C), Chr(&H3B), Chr(&HFF), Chr(&H84)), vbNullString), vbFromUnicode)
第二種方法是更新原始陣列中的元素。它仍然需要一個回圈,但條目將按位元組
Dim i As Long
Dim vValues As Variant: vValues = Array(&H9F, &H2C, &H3B, &HFF, &H84)
For i = LBound(vValues) To UBound(vValues)
vValues(i) = CByte(vValues(i))
Next i
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441577.html
