Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/75: Рейтинг темы: голосов - 75, средняя оценка - 4.65
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,219
Записей в блоге: 2

Как бороться с ошибкой -2147418113?

09.03.2016, 13:16. Показов 17830. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка возникает время от времени. Файл большой. Рабочая форма содержит много элементов, расположенных на 7 страницах multipage.
Заметил, что ошибка чаще возникает, когда добавлю элемент. но иногда и просто на пустом месте.
В подавляющем большинстве случаев вываливается во время сохранения файла. И всё. Сохранить не удается. ни в целом ни частями. Тогда возвращаюсь к старой версии, вношу изменения по памяти, и, как правило, всё сохраняется. Не прошу решить именно мою проблему. Прошу высказаться, если есть опыт решения сходных проблем в системе:

большой файл + большая форма + много элементов на форме + много кода + долго работает + косяк при сохранении изменений в программе (на форме)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2016, 13:16
Ответы с готовыми решениями:

"Затормаживание" EXCEL. Как бороться?
Добрый день. Вопрос не совсем по VBA, но думаю каждый стьалкивался с подобным. Дело в том что в моей базе данных (которую я веду в excel и...

Как бороться с переполнением стека
Мне нужно понять как бороться с переполнением стека. Есть управляющая процедура. изначально она заточена под предоставление пользователю...

Как бороться с утечками памяти в VBA?
Этот вопрос возник в другой теме. Но он важен сам по себе. Я не спец. И много здесь "неспецов". Но есть СПЕЦЫ. И на вас, братки,...

26
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
21.12.2016, 09:21
Студворк — интернет-сервис помощи студентам
Поясните пожалуйста.
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,219
Записей в блоге: 2
21.12.2016, 23:29  [ТС]
вчера запустил курейт.
и до этого сто раз запускал. и каспер у меня лицензионный уже 6 лет стоит
Но вчера в моем любимом файлике (и только в нём) нашелся вирус в контейнере W97M.DB
червяк в общем...
0
1069 / 107 / 4
Регистрация: 19.12.2012
Сообщений: 458
22.12.2016, 11:32
Поэтому, полный аккуратный перенос отдельно всего кода и перерисовка всех элементов в другом файле давно бы решил вашу проблему.
Хотя, вопрос к вам - как вы его раньше не заметили в коде сами?
0
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,219
Записей в блоге: 2
22.12.2016, 14:14  [ТС]
Я согласен с Вами по поводу "полного и аккуратного переноса"
Вот только чтобы всё перенести нужно понять, где эта дрянь у меня сидит. При поиске вируса указывает только и исключительно на мой файл. Но локализуется вирус "в контейнере". Где этот контейнер, чтоб его ненароком не переместить? вот в этом сейчас и разбираюсь. Потому что с перерисовкой у меня - один шанс. Если что-то не то дёрну ненароком - то всю работу на смарку пущу. А перерисовывать - это мне часа 2 надо только свойства забивать.
если бы это дело как-то автоматизировать....
0
 Аватар для anton-sf
128 / 64 / 14
Регистрация: 29.03.2015
Сообщений: 265
20.10.2017, 10:36
Стало быть все уяснили что чтобы вам помочь нужно копаться с вашим файлом, а вы его не дадите )

А вы пробовали в опциях редактора устанавливать режим отлова ошибок в "Break on all errors"? Понятно что ваша проблема не во время выполнения, но вдруг что-нить отловиться. Это я к тому что если, например, в коде есть два программных элемента с одинаковым названием, например две функции, то бывает что редактор не тормозит с ошибкой а даёт работать и выполнять код но в какой то момент из-за этого происходит сбой.

Когда-нибудь эта проблема вас достанет настолько что вы возьметесь переделывать формы на полностью программно создаваемые и сделаете себе макрос переноса всего кода в другой файл. Или вы найдёте проблему в совсем неожидаемом месте и её победите)

Кстати, подскажите знающие люди:
1) есть ли средство автоматизированно выдернуть весь код VBA в папки\файлики?
2) есть ли средство анализа кода\форм в проектах VBA (как раз на такие вот случаи как у автора)?
1
 Аватар для AndreA SN
1021 / 125 / 2
Регистрация: 26.08.2011
Сообщений: 1,219
Записей в блоге: 2
25.10.2017, 09:37  [ТС]
anton-sf, если я чем-то могу поделиться - я делюсь. Но сейчас работаю по дисеру - и вынужден соблюдать требования по патентованию, публикации отдельных материалов и прочему дребеденю. Вот дисер защищу - и тогда покопаемся. Если будет на то соизволение "контролирующих сил".
Хотя я локализовал эту ошибку. Возникает она, когда я что-либо делаю с элементом ListBox5. Конкретно с этим элементом (перемещаю, изменяю размер, настраиваю свойства). Я в принципе от него избавился. Существует он номинально как "передаточное звено". А реально работает его аналог. Проблема не исчезла, но перестала быть животрепещущей.
По поводу рекомендаций для отлова ошибок спасибо отдельное. Забыл совсем об этом...
А вот на вопросы ответить однозначно не могу. ВЫдернуть, я думаю, можно. Но как потом аккуратно "вдёрнуть" в новый файл?

Добавлено через 8 минут
Да... по поводу "вируса" я отписался раньше. Это была реакция на "протокол нажатия кнопок": когда машина предсказывала - какую кнопку пользователь должен нажать следующей. Именно такие программные последовательности распознаются как "червяк". Удалил протокол - не стало "вируса". Ну не больно-то и хотелось. Это заставило еще раз пересмотреть группировки кнопок на форме. Что добавило "явной" логики в организацию формы.

Добавлено через 8 минут
вот тут про мой вирь
Что выбрать - Антивирус Касперского или Avast?
там где мноого смайлоффф
0
3 / 3 / 0
Регистрация: 25.10.2017
Сообщений: 1
25.10.2017, 11:36
Статья о выдёргивании/вдёргивании: https://christopherjmcclellan.... a-and-git/

В моих проектах для этого живёт такой модуль, написанный на её основе:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Option Explicit
Const PATH_EXP As String = "D:\VBA\ThisProject\"
'Автоматизация экспорта и импорта VBA-исходников для интеграции с Git.
'Требуется настройка "Trust access to the VBA project object model"
'(File -> Options -> Trust Center -> Trust Center Settings -> Macro Settings)
'и зависимость "Microsoft Visual Basic For Applications Extensibility 5.3"
 
Public Sub ExportSourceFiles(destPath As String)
    Dim component As VBComponent
    For Each component In Application.VBE.ActiveVBProject.VBComponents
        If component.Type = vbext_ct_ClassModule Or component.Type = vbext_ct_StdModule Or component.Type = vbext_ct_MSForm Then
            component.Export destPath & component.name & ToFileExtension(component.Type)
        End If
    Next
End Sub
 
Public Function RemoveAllModules(confirm As Boolean)
    Dim remove As Boolean
    remove = True
    If confirm Then
        If MsgBox("Действительно удалить все макросы?", vbYesNo + vbExclamation, "Подтвердите") = vbNo Then
            remove = False
        End If
    End If
    If remove Then
        Dim component As VBComponent
        For Each component In Application.VBE.ActiveVBProject.VBComponents
            If component.Type = vbext_ct_ClassModule Or component.Type = vbext_ct_StdModule Or component.Type = vbext_ct_MSForm Then
                Application.VBE.ActiveVBProject.VBComponents.remove component
            End If
        Next
    End If
End Function
 
Private Function ToFileExtension(vbeComponentType As vbext_ComponentType) As String
    Select Case vbeComponentType
    Case vbext_ComponentType.vbext_ct_ClassModule
    ToFileExtension = ".cls"
    Case vbext_ComponentType.vbext_ct_StdModule
    ToFileExtension = ".bas"
    Case vbext_ComponentType.vbext_ct_MSForm
    ToFileExtension = ".frm"
    Case vbext_ComponentType.vbext_ct_ActiveXDesigner
    Case vbext_ComponentType.vbext_ct_Document
    Case Else
    ToFileExtension = vbNullString
    End Select
End Function
 
Sub e()
    ExportSourceFiles PATH_EXP
End Sub
 
Public Sub ImportSourceFiles(sourcePath As String)
    Dim file As String
    file = Dir(sourcePath)
    While (file <> vbNullString)
        If Not filenameEndsWith(file, ".frx") Then
            Application.VBE.ActiveVBProject.VBComponents.Import sourcePath & file
        End If
        file = Dir
    Wend
End Sub
Sub im()
    If PathExists(PATH_EXP) Then
        RemoveAllModules confirm:=True
        ImportSourceFiles PATH_EXP
    Else
        MsgBox "Каталог с исходным кодом " & PATH_EXP & " не найден"
    End If
End Sub
 
Public Function filenameEndsWith(str As String, ending As String) As Boolean
    Dim endingLen As Integer
    endingLen = Len(ending)
    filenameEndsWith = (Right(trim(UCase(str)), endingLen) = UCase(ending))
End Function
 
Function PathExists(pname As String) As Boolean
    Dim X As String
    On Error Resume Next
    X = GetAttr(pname) And 0
    PathExists = (Err = 0)
End Function
Макросы для вызова конечным пользователем (в данном случае — разработчиком): e() и im().

Выдёргивание работает безупречно (Файлы .frx при каждом экспорте разные, но это мелочь). Недостатки вдёргивания: либо надо всё удалять (хардкодить, что именно удалять, не хочу), либо импортированные модули будут с названием Project1, если просто Project уже был. А в файлы .frm всегда дописывается пустая строка сверху.

Если интересует, покажу ещё один костыль автоматизатор, написанный специально для хранения VBA-проектов в Git на Linux.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.10.2017, 11:36

Outlook как бороться с диалоговым окном
Проблема такая, написал макрос Outlook 2002 - который анализирует входящую почту и отправляет всем в ответ кой какой текст. При вызове...

Как бороться с ошибкой в Setup.exe?
При установки игры вылетает ошибка Setup.exe и эта опухать мешает кровяной жидкости доползти до сердца. Что делать? у меня страшная...

AVR asm - как нормально бороться с ошибкой
Studyo 4.19, с ассемблером ещё нормально работает, да вот не всегда (пиканье опускаю). При достаточно толстом проекте, выдаёт ошибку...

Как бороться с этой ошибкой и что она значит?
Error Type: error '8002801d' Library not registered. /iisHelp/common/500-100.asp, line 123

Как Бороться С Ошибкой Field Is Too Large (32k) Or View’s Colum
Добрый день! Есть база, критичная и большая. В ней документы с большим количеством респонсов, информация о которых подсобирается при...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru