| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > VBA For Word |
| Автор: Гость_Temp 11.8.2003, 21:47 | ||
Делаю так:
мне надо чтоб он слово [address] заменил на две строки, но вместо перевода строки (vbCrLf) вижу два квадратика. Почему? Что мне делать? Может вместо vbCrLf уникод символ какой-нить надо? Помоите пожалуйста! Очень благодарен! |
| Автор: Alles 12.8.2003, 04:04 |
| Wrd.Selection.Find.Execute FindText:="[address]", ReplaceWith:="Country" & Chr(13) & Chr(13) & "av. Aseerte, 123" |
| Автор: Гость_Temp 13.8.2003, 06:12 | ||
Не работает... |
| Автор: -Mikle- 13.8.2003, 07:23 |
| Попытался найти ответ и-и-и.... мне это тоже интересно стало... Какой же код символа переноса строки у Word? Кто знает? |
| Автор: cardinal 13.8.2003, 09:00 | ||
Так все же правильно! Зачем тут два раза Chr(13) я не понял, но это не суть. Код символа переноса строки это 13. |
| Автор: Alles 13.8.2003, 09:00 |
| Хм... , а может вот так Selection.TypeParagraph вот это точно строку переводит в Ворде! |
| Автор: Alles 13.8.2003, 09:10 | ||
Да ...... cardinal прав это мой касяк я просто запарился и воткнул туда два 13 я почемуто подумал что ... да ладно проехали там должен быть один перевод. Но Ворд действительно себя странно ведет при таком переводе ! у меня например пропадает кнопка в которой прописан перевод , а курсор где стоял там и стоит , а вот с этим Selection.TypeParagraph все ОК.
|
| Автор: Alles 13.8.2003, 09:53 |
| Нет я помоему не прав ! Selection.TypeParagraph в этом блоке не работает ! Автор : ты помоему что-то намудрил Selection.Text = "Country" & Chr(13) & "av. Aseerte, 123" вот так все работает ! Ты ищешь слово по документу и заменяешь его ??!! Selection.Find.ClearFormatting With Selection.Find .Text = "address" .Replacement.Text = "" End With Selection.TypeParagraph Selection.Text = "Country" & Chr(13) & "av. Aseerte, 123" Selection.Find.Execute End Sub Может ты вот так попробуешь ? |
| Автор: Гость_Temp 13.8.2003, 16:56 |
| Selection.TypeParagraph - это метод, он знает как переводить строку. Вся беда в том, что вообще, то что я написал в вопросе, работает. Не работает это в случае если [address] стоит в последней строке в ячейке таблицы. Если поставить знак переноса после него (т.е. сделать так чтоб он был не в последней строке ячейки), то все работает. Но ведь ворд как-то может ставить перенос строки, даже если слово в последней строке ячейки. Как он это делает? Какой же символ переносит строку независимо от того, где она находится? |
| Автор: Alles 14.8.2003, 04:19 |
| Да ...кому как , но я органически не выношу когда в ворде работают с таблицами и на работе у себя постоянно воюю с персооналом. А вообще системный перевод строки это Chr(13) ...... это как соль ! она соленая и все тут !!! Странно ! у меня все работает независимо где в таблице стоит искомая строка. |
| Автор: Гость_Temp 14.8.2003, 06:05 |
| В Word сделана Счет-фактура. Для того чтобы разметить в каких областях листа, что находиться, я использую таблицу без видимых границ. Вообще весь файл - это шаблон. Потом, из VB, я работаю с этим шаблоном, т.е. ищу метасимволы, и заменяю их на соответствующие значения из прораммы. Но если метасимвол в последней строке ячейки, то он не хочет переносить строку. В других местах переносит, а тут нет. |
| Автор: cardinal 14.8.2003, 15:55 | ||||
Да, прикольно... А разница между "software enter" и "hardware enter" оказывается есть.
А в MSDN вообще написано, что нам эта константа не пригодится,
а она пригодилась |
| Автор: Гость_Temp 14.8.2003, 16:58 |
| cardinal, ты молодец!!! Как я не догадался? Спасибо ОГРОМНОЕ за потраченое на меня время! Ты очень помог мне!!! Моя человеческая благодарность тебе! СПА-СИ-БО!!! |
| Автор: Гость_Temp 14.8.2003, 17:01 |
| Также огромное СПАСИБО Alles'у! Который потратил не меньше времени на меня! |
| Автор: Alles 15.8.2003, 02:21 |
| Ну блин ...век живи век учись |
| Автор: -Mikle- 15.8.2003, 06:10 |
| Да, cardinal... хорошее дело сделал! Интересно, сколько тебе лет? Alles, согласен с тобой... кардиналу +10 по рейтингу, даже больше можно... Temp, я надеюсь ты теперь зарегистрируешься |
| Автор: hobotyara 15.8.2003, 09:58 |
| Стандартный перевод строки состоит из двух символов Chr(10) & Chr(13). По идее должно работать Wrd.Selection.Find.Execute FindText:="[address]", ReplaceWith:="Country" & Chr(10) & Chr(13) & "av. Aseerte, 123" |
| Автор: cardinal 17.8.2003, 17:58 | ||
hobotyara, во первых стандартный перевод строки состоит из двух символов Chr(13) & Chr(10), а во вторых ты первое сообщение в этой теме читал?
-Mikle-, а почему интересно? |
| Автор: hobotyara 18.8.2003, 11:08 |
| cardinal, я их использовал внутри MsgBox. Сейчас посмотрел 4 варианта, Chr(10) Chr(13) Chr(10) & Chr(13) Chr(13) & Chr(10) работают одинаково Проблема в том что Ворд Chr(10) не воспринимает. |
| Автор: cardinal 18.8.2003, 11:19 | ||||
вопрос уже решен! |