首页 > 解决方案 > 将字符串的字节相加

问题描述

在 Excel 中使用 VBA。我有一个五个字符的字母数字字符串,我想将这些字节加在一起以获得总数。

Dim strMyString As String
strMyString = “ab9cd”

如何将字符串转换为字节,然后将每个字节相加?我想我需要将字符串的每个字符转换为十六进制字节,然后将每个十六进制字节转换为十进制。然后我可以将它们加在一起。提前感谢您的帮助。

标签: excelvba

解决方案


请尝试使用/理解下一个代码:

Sub playWithBytes()
   Dim strMyString As String, arrB() As Byte
   strMyString = "ab9cd"
   arrB() = StrConv(strMyString, vbFromUnicode) 'create a byte array from the string
   Debug.Print UBound(arrB())  'it returns 4 (5 elements in a zero based array)
   Debug.Print WorksheetFunction.Sum(arrB()) 'the zero after each byte does not matter when summing...
End Sub

下一个版本将字符串放在字节数组中,但每个字符字节后跟一个零:

Sub playWithBytesBis()
   Dim strMyString As String, arrB() As Byte
   strMyString = "ab9cd": arrB() = strMyString 'create a byte array, but each string byte is followed a zero element
   Debug.Print UBound(arrB())  'it returns 9 (10 elements in a zero based array)
   Debug.Print WorksheetFunction.Sum(arrB())
End Sub

推荐阅读