4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68

Заменить текст\Удалить строку в VB6

05.09.2013, 12:05. Показов 2518. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я - начинающий...
Есть код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Sub PrintPotreb()    
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Add App.Path & "\Samples\DogLPH1Z.dot"
    f = SetFieldsStr("@Заменяемый_текст@", "")
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
End Sub
 
 
Function SetFieldsStr(Text1 As String, Text2 As String)
           With objWord.Selection.Find
             .ClearFormatting
             .Forward = True
             .Wrap = wdFindContinue
             .Text = Text1
             .Replacement.Text = Text2
             .Replacement.ClearFormatting
             .Execute
          End With
End Function
При запуске вылетает ошибка "Run-time error 424: object required" на строке
Visual Basic
1
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Посмотрел в дебагере wdLine,wdCharacter и wdExtend = Empty.
Разумный вопрос: почему?

Добавлено через 8 минут
А вообще, задача состоит в том, чтобы удалить всю строку со словом "@Заменяемый_текст@".
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.09.2013, 12:05
Ответы с готовыми решениями:

Ввести строку, удалить из неё все цифры, а знаки “+” заменить на” –“ и наоборот
1. Ввести строку, удалить из неё все цифры, а знаки “+” заменить на” –“ и наоборот. 1. Ввести произвольное число, посчитать сумму его...

Чем заменить TopRow в VB6?
в старой версии VB стоит TopRow. Чем заменить TopRow в VB6?

Удалить последний пробел в текстбоксе (VB6)
Вот так удаляет все пробелы Text1.Text = Replace(Text1.Text, " ", "")А мне нужно конечный только удалить например в текстбоксле ...

6
2052 / 482 / 133
Регистрация: 13.11.2008
Сообщений: 920
05.09.2013, 12:12
Потому что это константы Word-а, а не VB. Либо подключите в References ссылку на библиотеку Microsoft Word, либо замените эти константы их числовыми значениями.
wdLine = 5
wdCharacter = 1
wdExtend = 1
Visual Basic
1
Selection.EndKey Unit:=5, Extend:=1
Дальше сами
1
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
05.09.2013, 12:17  [ТС]
Цитата Сообщение от The_Prist Посмотреть сообщение
Потому что это константы Word-а, а не VB. Либо подключите в References ссылку на библиотеку Microsoft Word, либо замените эти константы их числовыми значениями.
wdLine = 5
wdCharacter = 1
wdExtend = 1
Visual Basic
1
Selection.EndKey Unit:=5, Extend:=1
Дальше сами
Заменил - та же самая ошибка...
0
2052 / 482 / 133
Регистрация: 13.11.2008
Сообщений: 920
05.09.2013, 12:22
Точно, Selection тоже надо заменить хотя бы на objWord.Selection.
Более трудно сказать, т.к. вообще неясно из какого приложения все это делается.
1
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
05.09.2013, 12:27  [ТС]
Мдаа...
Visual Basic
1
2
    objWord.Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    objWord.Selection.Delete Unit:=wdCharacter, Count:=1
The_Prist , опередили!
Спасибо!
0
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68
06.09.2013, 16:21  [ТС]
Цитата Сообщение от The_Prist Посмотреть сообщение
Точно, Selection тоже надо заменить хотя бы на objWord.Selection.
Более трудно сказать, т.к. вообще неясно из какого приложения все это делается.
А как же сделать так, чтобы это:
Visual Basic
1
2
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    Selection.Delete Unit:=wdCharacter, Count:=1
выполнялось только если есть искомый текст.
Сейчас то оно у меня выполняется в любом случае.
0
2052 / 482 / 133
Регистрация: 13.11.2008
Сообщений: 920
06.09.2013, 17:20
Я бы так сделал:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub PrintPotreb()
    Dim objWord As Object, oDoc As Object
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set oDoc = objWord.Documents.Add(App.Path & "\Samples\DogLPH1Z.dot")
    If SetFieldsStr("@Заменяемый_текст@", "", oDoc) Then
        objWord.Selection.EndKey Unit:=5, Extend:=1
        objWord.Selection.Delete Unit:=1, Count:=1
    End If
End Sub
Function SetFieldsStr(Text1 As String, Text2 As String, oDoc As Object) As Boolean
    With oDoc.Range.Find
        .ClearFormatting
        .Forward = True
        .Wrap = 1
        .Text = Text1
        .Replacement.Text = Text2
        .Replacement.ClearFormatting
        SetFieldsStr = .Execute
    End With
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.09.2013, 17:20
Помогаю со студенческими работами здесь

Как вставить код ассемблера в текст VB6?
Надоело, сам цикл тормозит больше, чем его 'внутренности'. Что делать?

Требуется с помощью VB6.0 проверить текст исходного *.php
дамы и господа, поясните мне кто может: требуется с помощью VB6.0 проверить текст исходного *.php, т.е. даю запрос...

Повернуть текст на 90 градусов при выводе на печать (на принтер) в VB6
Всем привет! Нужна помощь в выводе на печать средствами VB6. Мне нужно располагать строки на странице как горизонтально, так и...

Можно-ли на VB6 удалить все записи из таблицы Access не перебирая их?
1. Можно-ли на VB6 удалить все записи из таблицы Access не перебирая их? 2. Нужно из таблицы Access выбрать некоторые записи и записать...

Контроль длины Label. А также VB6 Portable vs VB6 Installed.
Исходя из заголовка темы, вопроса 2: 1.) Как определить, что в Label уже не хватает места для Caption? Длина букв разная. Например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru