Добавление ENTER после определенного количества символов в Word 2010 VBA Macro

Итак, у меня есть данные в формате:

data1|data2|data3|data4|data5|data6|... и т. д.

Я хочу, чтобы Word помещал enter (строку разрыва) после каждого 5-го вхождения | для структурирования и разделения данных.

Я не могу найти простой и быстрый способ сделать это. Любые идеи?


person user3173321    schedule 08.01.2014    source источник


Ответы (1)


Используйте встроенную функцию Split и перестройте строку данных, используя константу vbCrLf, чтобы добавить перевод строки.

Обратите внимание, что функция Split удаляет разделитель, поэтому, если он вам нужен в выводе, вы должны добавить его обратно при добавлении строк в цикле For.

Что-то вроде следующего может работать:

Option Explicit

Sub GroupDataStringByFive()
    Dim sIn As String
    Dim sOut As String
    Dim sArr() As String
    Dim iForCounter As Integer

    sIn = "data1|data2|data3|data4|data5|data6"

    sArr = Split(sIn, "|")

    If IsArray(sArr) Then
       For iForCounter = 0 To UBound(sArr)
           If iForCounter > 0 And iForCounter Mod 5 = 0 Then
               sOut = sOut & vbCrLf & sArr(iForCounter)
           Else
               sOut = sOut & sArr(iForCounter)
           End If
       Next iForCounter
    End If

    MsgBox sOut
End Sub
person Olle Sjögren    schedule 08.01.2014
comment
Работал отлично. Пришлось настроить его, чтобы переключиться с MSgBox на что-то более полезное, но в остальном - 100% идеально. Я очень благодарен за вашу помощь :) - person user3173321; 08.01.2014
comment
Пожалуйста! Я всегда думаю, что команда MsgBox полезна... ;) - person Olle Sjögren; 08.01.2014