반응형
VBA에서 간단한 문자열을 바이트 배열로 변환하는 방법은?
나는 엑셀 VBA를 이용해서 바이트 배열의 간단한 문자열을 변환해야 합니다.그러면 이 바이트 배열이 요청 본문으로 사용됩니다.
내가 어떻게 그럴 수 있을까?
Matthew는 ANSI로 변환하는 방법에 대해 답했지만, 결과 바이트 배열이 원래 유니코드 문자열을 그대로 나타내기를 원한다면, 직접 할당하기만 하면 됩니다.
Public Sub Main()
Dim b() As Byte
Dim s As String
s = "Whatever"
b = s 'Assign Unicode string to bytes.'
s = b 'Works in reverse, too!'
Debug.Print s
End Sub
그것이 전부입니다.각각의 유니코드 문자를 설명하는 연속적인 쌍인 16개 요소 Byte 배열로 끝납니다.
ANSI 문자만 필요한 경우 StrConv() 기능을 사용하면 됩니다.
' a bit of an example
' had some strings down column G
' nothing in columns "F" or "H" so that current works
' Think about it.. there are many many columns
' so leave blank columns on each side of setsof dats
' then currentregion works ... IFF no blank rows in the data
'
' problem to solve some text was Fred3 John2 Blue3
' others were Bert 3 Green 2 ... which was the require format
' the ASC char 1 ..255 are the odd or even
' numbered bytes if array is 1 based or 0 based
'
Private Sub CommandButton1_Click()
Dim RV$, Ra As Range, Ri&, AL%, WSA() As Byte
Dim Ci%, WS$, LV As Byte
Set Ra = Range("g8").CurrentRegion
For Ri = 1 To Ra.Rows.Count
WSA = CStr(Ra(Ri, 1).value)
AL = UBound(WSA)
LV = WSA(AL - 1) ' last char byte value
If LV > 47 And LV < 58 Then ' 0 to 9
If WSA(AL - 3) <> 32 Then ' no space " "
ReDim Preserve WSA(AL + 2) ' allow 1 more char
WSA(AL - 3) = 32 ' put in space
WSA(AL - 1) = LV ' return char
WS = WSA ' back to a string
Ra(Ri, 1) = WS ' back to the cell
End If
End If
Next Ri
End Sub
' of course the normal VBAcommands Instr len Mid replace &
' would do the job ... but my brain is lazy and needed some exercise
언급URL : https://stackoverflow.com/questions/998746/how-to-convert-a-simple-string-to-byte-array-in-vba
반응형
'programing' 카테고리의 다른 글
Jasmine에서 "Controller as" 구문으로 스코프 변수를 사용하는 방법? (0) | 2023.10.05 |
---|---|
jQuery clone() 이벤트 바인딩을 복제하지 않음(on()이(가) 있는 경우에도) (0) | 2023.10.05 |
화살표 함수로 '이것'을 묶을 수 있습니까? (0) | 2023.10.05 |
서명되지 않은 긴' 변수를 인덱싱하고 결과를 출력합니다. (0) | 2023.10.05 |
오류 "adb 연결이 중단되었으며 심각한 오류가 발생했습니다." (0) | 2023.10.05 |