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

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

05.09.2013, 12:05. Показов 2505. Ответов 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
2044 / 475 / 132
Регистрация: 13.11.2008
Сообщений: 911
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
2044 / 475 / 132
Регистрация: 13.11.2008
Сообщений: 911
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
2044 / 475 / 132
Регистрация: 13.11.2008
Сообщений: 911
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru