Страницы: 1
RSS
VBA: не работает функция разбиения строки
 
Добрый день! Имеется макрос, заполняющий шаблон Word документа значениями из ячеек Excel.
В данном макросе есть функция проверки значения в ячейке excel на превышение 256 символов и вставки текста в шаблон Word пошагово, если значение превышает 256 символов:
Код
'Функция проверки и разбиения строки
Sub Replace(Word1, Word2, WD)
    Lencheck = Len(Word2)   'Проверка длины строки для вставки
If Lencheck > MaxLen Then   'Если строка более 256 символов вставку следует выполнить по этапно
    Start = 1
    Lengg = MaxLen          'устанавливаем длину строки для вставки
    Do
        Buffer = Mid(Word2, Start, Lengg) 'режем строку для вставки с позиции Start до Lengg
        Call Replacing(Word1, Buffer, WD)
        Start = Lengg           'меняем стартовую позицию функции Mid
        Lengg = Lengg + MaxLen  'двигаемся далее по строке с шагом MaxLen
    Loop While Lengg < Lencheck 'выполняем пошаговую вставку строки, пока не дойдем до конца
        Buffer = Mid(Word2, Start, Lengg) 'режем строку для вставки с позиции Start до Lengg
        Call Replacing(Word1, Buffer, WD)

Else 'замена Word1 на Word2 при условии, что Word2 - текст для замены - короче 256 символов
    Call Replacing(Word1, Word2, WD)
End If

End Sub
Но данная функция не работает. В чем может быть проблема? Заранее спасибо.
 
Нажал кнопку - нет ошибки. Что я делаю не так?
P.S. Кстати ошибка может быть из-за названия процедуры: Sub Replace() - советую изменить хоть на Sub Replace_()
Изменено: Hugo - 06.06.2018 13:58:04
 
Изменил ячейку "C16" в Excel файле, теперь там текст превышающий 256 символов. Данная функция Sub Replace() должна "поделить" строку на части и выполнить пошаговую вставку ее в шаблон, но она этого не делает.
Изменено: Alex375 - 09.06.2018 08:37:15
Страницы: 1
Наверх