VBA, MS Access MS Access в примерах

Разворот строки с разделителем по вертикали + Построчное чтение

По материалам: https://www.cyberforum.ru/ms-access/thread3035088.html

... получена информация в виде, где во втором столбце информация записана через запятую

1 А,Б,В
2 Г,Д,Е

Необходимо разделить информацию по следующему типу

1 А
1 Б
1 В
2 Г
2 Д
2 Е

Public Sub test_0000000000001(vVal)
Dim IVal%, vNo, sVal$, vArr As Variant
If Len(vVal & "") = 0 Then Exit Sub
IVal = InStr(1, vVal, " "): vNo = Val(Mid(vVal, 1, IVal))
sVal = Mid(vVal, IVal + 1): vArr = Split(sVal, ",")
For IVal = 0 To UBound(vArr)
    Debug.Print vNo & " " & Trim(vArr(IVal))
Next IVal
End Sub


Проверка в оперативном окне:

test_0000000000001 ("031 Г,Д,Е")


- вернёт:

31 Г
31 Д
31 Е





+ Построчное чтение

Public Sub test_0000000000002(vVal)
Dim lLine&, iVal%, vNo, sVal$, sArrLines() As String, vArr As Variant
    If Len(vVal & "") = 0 Then Exit Sub
    sArrLines = Split(vVal, vbNewLine)
    For lLine = 0 To UBound(sArrLines)
        iVal = InStr(1, sArrLines(lLine), " ")
        vNo = Val(Mid(sArrLines(lLine), 1, iVal))
        sVal = Mid(sArrLines(lLine), iVal + 1)
        vArr = Split(sVal, ",")
        For iVal = 0 To UBound(vArr)
            Debug.Print vNo & " " & Trim(vArr(iVal))
        Next iVal
    Next lLine
End Sub


Проверка в оперативном окне:

test_0000000000002 ("1 А,Б,В" & vbCrLf & "2 Г,Д,Е")


- вернёт:

1 А
1 Б
1 В
2 Г
2 Д
2 Е

Назад ToTop
L.E. 27.10.2022
Рейтинг@Mail.ru