Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 0
Регистрация: 29.10.2012
Сообщений: 68

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

05.09.2013, 12:05. Показов 2535. Ответов 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
2061 / 490 / 134
Регистрация: 13.11.2008
Сообщений: 934
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
2061 / 490 / 134
Регистрация: 13.11.2008
Сообщений: 934
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
2061 / 490 / 134
Регистрация: 13.11.2008
Сообщений: 934
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
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru