Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2

Найти ошибку в процедуре

29.11.2010, 15:57. Показов 7105. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ниже процедура, она выполняет удаление активных гиперссылок, в файлах найденных другой процедурой в заданной папке. (все это в форме) Она работает нормально до .Hyperlinks.Item(1).Delete и выбивает ошибку.
"Run-time error '4198'" Ошибка команды.
Что не правильно?, я бьюсь уже давно не могу понять.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub KillHyperLinks()
For i = 1 To qfiles
docname = files(i)
Documents.Open FileName:=docname, ReadOnly:=False
With ActiveDocument
.Activate
qlinks = .Hyperlinks.Count
If qlinks = 0 Then
    GoTo nx
End If
While .Hyperlinks.Count > 0
'MsgBox .Hyperlinks.Count
.Hyperlinks.Item(1).Delete
dellinks = dellinks + 1
Wend
ActiveWindow.ActivePane.View.Type = wdPrintView
.Save
End With
nx: ActiveDocument.Close
 Next i
End Sub
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2010, 15:57
Ответы с готовыми решениями:

Исправить ошибку в процедуре
Исправить ошибку в процедуре: Инструкция Select Case в следующей процедуре должна выводить окно сообщения, определяющего меньше ли число,...

найти ошибку в процедуре
Была программа unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

Найти ошибку в процедуре
Задание следующее: Создать процедуру с использованием курсора для вывода списка занятий определенного преподавателя за определенный...

29
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
02.12.2010, 20:49
Студворк — интернет-сервис помощи студентам
<Профессор>,
а ошибка возникает на первой гиперссылке?

Добавлено через 11 минут
Цитата Сообщение от <Профессор> Посмотреть сообщение
docname = files(i)
а
Visual Basic
1
files
что такое?
0
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
02.12.2010, 22:26  [ТС]
Цитата Сообщение от Вождь Посмотреть сообщение
Ошибка возникает не по вине макроса. В обычных условиях вышеописанные макросы полностью рабочие. Вам надо внимательней присмотреться к документам и вообще к ситуации.

Ошибка ошибкой, а гиперссылки то удаляются? Попробуйте добавить On Error Resume Next.

Об ошибке: "Run-time error '4198'"
Application-defined or object-defined error

This message is displayed when an error generated with the Raise method or Error statement doesn't correspond to an error defined by Visual Basic for Applications.

Это сообщение появляется, если ошибка вызвана методом Raise или случившаяся ошибка не соответствует ни одной ошибке из оговоренных в VBA.
Когда я это сделал макрос то работает (без ошибок). Только вот гиперссылки нихера не удаляются!!
Подсчет удаленных ссылок идет, но они не удаляются! Вот так вот
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
03.12.2010, 10:27
<Профессор>,
а ты можешь выложить образец файла, в котором не удаляются гиперссылки?
0
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
04.12.2010, 18:45  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
<Профессор>,
а ты можешь выложить образец файла, в котором не удаляются гиперссылки?

documents.rar
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
04.12.2010, 19:20
<Профессор>,
у меня тоже эта ошибка выскочила. Сейчас буду смотреть в чём причина.
0
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
04.12.2010, 19:24  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
<Профессор>,
у меня тоже эта ошибка выскочила. Сейчас буду смотреть в чём причина.
busline что ты мог смотреть если у тебя нет всего кода?
может normal.dot еще надо выложить сюды?
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
04.12.2010, 19:35
Вот это я использовал:
Visual Basic
1
2
3
Sub m_4()
ActiveDocument.Hyperlinks(1).Delete
End Sub
Добавлено через 8 минут
Пока вот такое решение:
Visual Basic
1
2
3
Sub m_4()
ActiveDocument.Hyperlinks(1).Range.Fields.Unlink
End Sub
Только в документе (я только один документ просмотрел) гиперссылки ведут себя неправильно: после удаления остаётся подчёркивание и синий цвет. Соответственно нужно добавить команды по форматированию этих гиперссылок.
0
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
04.12.2010, 19:57  [ТС]
Цитата Сообщение от Busine2009 Посмотреть сообщение
Вот это я использовал:
Visual Basic
1
2
3
Sub m_4()
ActiveDocument.Hyperlinks(1).Delete
End Sub
Добавлено через 8 минут
Пока вот такое решение:
Visual Basic
1
2
3
Sub m_4()
ActiveDocument.Hyperlinks(1).Range.Fields.Unlink
End Sub
Только в документе (я только один документ просмотрел) гиперссылки ведут себя неправильно: после удаления остаётся подчёркивание и синий цвет. Соответственно нужно добавить команды по форматированию этих гиперссылок.
пусть остается подчеркивание и синий цвет
у моего заказчика тысячи таких документов на сервере крутятся
0
2309 / 1541 / 115
Регистрация: 13.06.2009
Сообщений: 5,575
04.12.2010, 20:02
После удаления гиперссылка остаётся синей и подчёркнутой по следующим причинам:
  1. Гиперссылку вставили.
  2. Не понравилось, что она синяя и подчёркнутая и сделали её чёрной без подчёркивания.
  3. Передумали и решили сделать снова синей и подчёркнутой.

Добавлено через 50 секунд
Цитата Сообщение от <Профессор> Посмотреть сообщение
пусть остается подчеркивание и синий цвет
а зачем тогда их удалять?

Добавлено через 4 минуты
Вот такой окончательный вариант:
Visual Basic
1
2
3
4
5
6
7
Sub m_4()
With ActiveDocument.Hyperlinks(1).Range
    .Font.Color = wdColorAutomatic
    .Font.Underline = wdUnderlineNone
    .Fields.Unlink
End With
End Sub
В Word 2007 такая ошибка не возникает и можно использовать метод Delete.
1
исследователь
325 / 104 / 3
Регистрация: 18.03.2010
Сообщений: 1,079
Записей в блоге: 2
04.12.2010, 21:02  [ТС]
Вот теперь все нормально работает, ура!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2010, 21:02

Найти ошибку в процедуре
Даны два одномерных массива длиной n. Поменять местами 1-й и последний элементы в каждом массиве. Вывести на экран данные и полученные...

Найти ошибку в процедуре
Помогите, пожалуйста, новичку! В приведенном отрывке кода допущена ошибка, из-за которой приложение &quot;виснет&quot;. Мне надо эту...

Найти ошибку в процедуре LU-разложения матриц
Помогите пожалуйста найти ошибку в процедуре которая должна реализовывать метод LU-разложения матриц. У меня при работе программы...

Найти ошибку в процедуре ввода числа
Дана задача: Написать программу, которая вычисляет оптимальный вес, сравнивает его с реальным и выдает рекомендацию о необходимости...

Найти ошибку в процедуре сортировки Heap (пирамида)
вот код ,не знаю почему не работает //////////////////////////////////////////////////////////////////////////////////////// void...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru