Дополнение
Как уже упоминалось, строка не является ни коллекцией , ни массивом , , однако вы можете назначить строка в массив ► Byte
, который можно легко итерировать с помощью For Each
l oop.
Обратите внимание, что массив Byte
всегда содержит пары байтов со значениями numeri c; так, например, цифры 0-9
отображаются как числовые c Asc
значения между 48-57
(вместе со значением 0
в качестве дополнительного сопутствующего значения), аналогично обычным буквенным символам A-Z
и a-z
.
Sub IterateByte()
Dim s As String: s = "Yasser51"
Dim b() As Byte: b = s
Debug.Print " i", "Asc Value ", "ch| IsDigit" & vbNewLine & String(50, "-")
Dim i As Long, ch As String, vNum As Variant
For Each vNum In b
ch = Chr(vNum)
If vNum Then Debug.Print i, "Asc " & vNum, ch & " | " & (ch Like "#")
i = i + 1
Next
End Sub
Пример результата в непосредственном окне редактора VB
' i Asc Value Ch| IsDigit
'--------------------------------------------------
' 0 Asc 89 Y | False
' 2 Asc 97 a | False
' 4 Asc 115 s | False
' 6 Asc 115 s | False
' 8 Asc 101 e | False
' 10 Asc 114 r | False
' 12 Asc 53 5 | True
' 14 Asc 49 1 | True