Форум по VBA и MS Office

Word => Макросы в Word => Тема начата: Сергей от 25 января 2014, 19:16

Название: Макрос на разделение
Отправлено: Сергей от 25 января 2014, 19:16
Как разбить строку на части и считать в отдельные переменные для дальнейшей работы.
Пример:
Иванов А.А. Информатика, М. - 220с.
на
Иванов
А.А
Информатика
М.
220с.
Название: Re: Макрос на разделение
Отправлено: Администратор от 25 января 2014, 19:25
Сергей, можно с этого начать:
Код
Sub Procedure_1()

    Dim strText As String
    Dim varVariant As Variant
    Dim i As Long
   
   
    strText = "Иванов А.А. Информатика, М. - 220с."
   
    'Разбивка строки на части по пробелам.
    varVariant = Split(strText, " ")
   
    'Вывод результата в View - Immediate Window.
    For i = 0 To UBound(varVariant) Step 1
        Debug.Print varVariant(i)
    Next i
   
End Sub
[свернуть]
Название: Re: Макрос на разделение
Отправлено: Сергей от 25 января 2014, 19:38
Спасибо.
Название: Re: Макрос на разделение
Отправлено: Сергей от 26 января 2014, 19:12
А если строчек таких несколько, и считать их нужно с документа Word?

[вложение удалено администратором]
Название: Re: Макрос на разделение
Отправлено: Администратор от 26 января 2014, 19:30
Вот так примерно:
Код
Sub Procedure_1()
   
    Dim varVariant As Variant
    Dim i As Long, j As Long
   
   
    'В цикле с "i" проходимся по абзацам документа.
    'Двигаемся со второго абзаца по последний.
    For i = 2 To ActiveDocument.Paragraphs.Count Step 1
       
        'Разбивка строки на части по пробелам.
        varVariant = Split(ActiveDocument.Paragraphs(i).Range.Text, " ")
       
        'Вывод результата в View - Immediate Window.
        For j = 0 To UBound(varVariant) Step 1
            Debug.Print varVariant(j)
        Next j
           
    Next i
   
End Sub
[свернуть]