К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос к знатокам Microsoft Visual Basic

0 - 11.06.2014 - 19:22
Вопрос к знатокам Microsoft Visual Basic или к тем, кто пишет макросы для Microsoft Word!!!!!!!
Прилагаю скрины скрпита.
Скажите ради Бога - ЧТО-О-О-О ему здесь не подходит?????????
В чём ошибка? Почему он после слов "Финансовое обеспечение на новый период" (второй скрин) перед знаком Chr(13) - начал рисовать красным?
Что в этом месте не так? Ведь этот знак раньше много раз прекрасно воспринялся...
Сижу уже несколько дней..... :-(





1 - 11.06.2014 - 19:26
Вот текст скрипта в редакторе
Гость
2 - 11.06.2014 - 20:27
Здесь элементарщина: удалите символы переноса строк _
и будет щастье.

А заодно предложите хотя-б виртуально вырвать яица тому, кто собирает такие длинные текстовые строки в коде. Обычно это делается так:

irf = "Именем Российской Федерации"

sud = irf & chr(13) & "Судебная коллегия Верховного суда Российской Федерации"

sostav = irf & & chr(13) & "В составе судей ..."

В общем смысл понятен... Избегайте длинных строк!
3 - 11.06.2014 - 20:31
Спасибо за ответ!
Удалить символы переноса строк не могу - так как в итоговом документе текст должен быть не в одну строку :-)
Но за подсказку спасибо!
Вы имеете в виду, что присоединять символы перенос текста надо не знаком "+", а через конкатенацию? Так? :-)
4 - 11.06.2014 - 20:47
А почему получается такая длинная строка, то это здесь
http://reestr.russiatourism.ru/?ac=view&id_reestr=842
такие длинные данные, которые автоматически берутся с сайта и автоматически вставляются в документ Word :-)
5 - 11.06.2014 - 21:33
Вот вся команда. Она создаётся автоматически программой:

[EditBookmark .Name = "TourOperatorData", .Goto][Insert "Реестровый номер: МТ1 000870" & chr(13) & "Полное наименование: Общество с ограниченной ответственностью САНМАР ТУР" & chr(13) & "Сокращенное наименование: ООО САНМАР ТУР" & chr(13) & "Адрес (место нахождения): 105066, г. Москва, ул. Нижняя Красносельская, д. 40/12, корпус 20, 1 этаж" & chr(13) & "Почтовый адрес: 105066, г. Москва, ул. Нижняя Красносельская, д. 40/12, корпус 20, 1 этаж" & chr(13) & "Адрес официального сайта в сети Интернет: www.sunmar.ru" & chr(13) & "."]

Но строки "str1" & chr(13) & "str2" - так соединять нельзя? :-)
6 - 11.06.2014 - 22:14
Всё! Решилось.
Сделали не одну команду Insert с длинной строкой, а пять команд Insert с менее длинными строками...

Ну кто мог знать, что это ЧУДО не принимает длинные строки?????????????????????????????
Гость
7 - 16.06.2014 - 13:38
2225777 - ограничения на длину строк есть в ЛЮБОМ языке программирования. Чудо-VBA как раз имеет довольно мало ограничений и прекрасно работает с большимитсроками строками. В коде же длинные строки - зло. Найти ошибку - трудно. Настоящие VBA-программисты почти не используют переноса строк в коде.

Cтроки "str1" & chr(13) & "str2" - так соединять нельзя? - можно и даже нужно.

Помните, что символ переноса строк программного КОДА в редакторе VBA - это подчеркивание _

А строковый символ, заставляющий текстовую строку при выводе/печати переходить на другую строку - это либо Chr(13) либо константа VbCrLf
8 - 16.06.2014 - 15:45
2 economist
Ещё раз спасибо за помощь! :-)

(И что интересно: бьёшься-бьёшься сам - не получается, только начинаешь спрашивать у кого-то - как в этот же момент и сам понимаешь, в чём дело!
Как будто, когда обращаешься к другому человеку - словно смотришь на свой код его глазами - и видишь причину! Мистика, да и только! :-) :-) :-) )
9 - 18.07.2014 - 16:26
Новая странность:
а что - есть ограничение на количество команд в одном VB-скрипте?
10 - 18.07.2014 - 16:32
Среди прочих других команд в одном посыле из Delphi
в документ Microsoft Word'а
есть последовательность, заполняющая таблицу:

[TableInsertRowBelow]
[NextCell][Insert "4"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "111"]
[NextCell][Insert "222"]

("111" вставляются в тестовых целях).

Документ создаётся прекрасно, если задано повторение этого блока команд 6 раз.
И не создаётся, если задано повторение этого блока 7 раз. Никакой ошибки. Просто открывается белый чистый лист.

Если в вышеуказанной последовательности команд убрать последнюю команду
[NextCell][Insert "222"]

то теперь семь строк таблицы создаётся в документе!
Но не создаётся 8 и больше.

Напрашивается вывод только один: есть ограничение на количество команд, за один раз посылаемых в Microsoft Word?
Гость
11 - 29.07.2014 - 14:10
Цитата:
Сообщение от economist Посмотреть сообщение
Избегайте длинных строк!
А также вставляйте текст, а не картинку.


К списку вопросов






Copyright ©, Все права защищены