Ошибка сценария при выполнении сценария basic

После защиты паролем через библиотеку, макрос перестал работать

Автор Konstanta, 7 февраля 2020, 10:54

0 Пользователи и 1 гость просматривают эту тему.

Вниз
Страницы1 2 3 4 5 6 7 8

Приветствую всех жителей форума!
Избитая тема «защиты данных паролем» задаёт новые загадки.
Недобросовестные пользователи внутренней отчётности, которая влияет на премию конкретных сотрудников, узнали что пароль на защиту листа находится в меню Сервис => макросы
и просто снимают его не напрягаясь перебором и прочими техническими штуками.
Естественно я попытался поставить пароль на сам макрос (Сервис=> Управление макросами=> Макросы LibreOffice BASIC=> Управление=> Библиотеки=> Выбираем наш файл с макросами (не стандарт) и вводим пароль.
Всё здорово!
Только теперь при нажатии кнопки макроса выходит сообщение вида:

«Ошибка сценария при выполнении сценария Basic vnd.sun.star.script:VBAProject.Module1.Текст?language=Basic&location=document.»

Но если войти в редактор макросов и ввести тот самый пароль, то макрос вполне нормально работает.
Я так полагаю что где-то есть параметр типа «на чтение» или «на исполнение».
Подскажите пожалуйста, кто в курсе: как добиться выполнения макроса, не снимая пароля.

Файлик примера приложен.
Всем Спасибо!


Тут целая куча проблем.
Во-первых, проекты VBA (VBAProject, то есть те, которые остались после конвертирования из MS Office) вообще не поддерживаются при шифровании. Сохраните макрос в нормальной библиотеке ЛО.

Во-вторых, у запароленных библиотек есть проблемы с локализованными строками (например, решённый баг 57113, а также нерешённый баг с локализованными именами функций — но эта проблема Вас не затронет, если Вы используете русский интерфейс ЛО.)

В третьих, VBASupport, похоже, не работает даже в нормальных библиотеках с паролем.


А есть возможность не хранить пароль в тексте макроса, чтобы он не был виден непосвящённым пользователям?



в тексте макроса перед выполнением операций макрос снимает защиту с листа «
ActiveSheet.Unprotect «ПАРОЛЬ»

А после выполнения операций

ActiveSheet.Protect «ПАРОЛЬ»



В книге масса значений, подгруженных из достоверных источников, которые запрещено менять.
Бывали случаи когда сотрудники (у нас их более 30) «ручками» корректировали себе показатели, чтобы повысить премии.
Выловить это достаточно сложно.
Поэтому редактирование возможно только тех ячеек, которые не защищены (они под контролем находятся)
Простая защита (без пароля) просто отключается.
С паролем работала несколько лет.
Но появилось несколько умников, которые просто смотрят в тексте макроса пароль.


Я не спрашивал, зачем нужен пароль (пусть даже и слабенький: защита листа — это ерунда, которую может обойти любой желающий, не зная пароля).

Я спрашивал: зачем Вы снимаете пароль в макросе (и затем приходится его возвращать)?


я понял, извините …
Я наверное совсем дилетант и то, что напишу Вас удивит, но
на каждом листе макрос выполняет кучу операций, заполняя защищённые ячейки нужными данными.
на защищённом листе макрос не работает, поскольку лист защищён.

Поэтому сначала снимаю защиту, потом обрабатываю ячейки, потом ставлю защиту.


Цитата: Konstanta от  7 февраля 2020, 12:27на защищённом листе макрос не работает, поскольку лист защищён.

Вы пробовали? По крайней мере Ваш макрос прекрасно меняет защищённые ячейки B2 и B3 в ЛО 6.4.0.3, даже если убрать строки со снятием/возвращением пароля.


А вот для меня это новость!!!
Excel так не умеет…
При изменении макросом защищённой ячейки он ругается!
Про Libre этой возможности я просто не знал.
Получается, что можно защитить лист (от дурака) своим паролем и не париться со снятием и постановкой защиты …
Я попробую более сложные вещи, со скрытием и раскрытием строк, столбов и прочих нюансов
Спасибо огромное, за просвещение!


Цитата: Konstanta от  7 февраля 2020, 12:20Бывали случаи когда сотрудники (у нас их более 30) «ручками» корректировали себе показатели, чтобы повысить премии.

оффтоп, но вам не кажется, что тут что-то не так? А где контроль за их фактическими показателями со стороны руководителя подразделения?


Так на местах «руководители подразделения» и щёлкают клювами, пропуская эти вещи…
А когда выгруженные отчёты попадают в фин-отдел, там уже не видно тех показателей, на которых всё основано.
Потом конечно всё всплывает в итоге, но время уходит и силы тратятся…
Но это уже другая тема :)


При удалении снятия защиты в реальном рабочем файле макрос всё же ругается на то, что невозможно изменить защищённые ячейки.
Так что тема актуальна.


Konstanta — Calc (особенно некотоорые старые версии) — легко обходят все Excel-примочки защиты с паролями листов/книг итп, Sheet().Visible = xlVeryHidden и прочим. Поэтому защитить ничего надежно не получится.

Кроме того, подсунув невалидные данные в ячейки — можно вызвать Runtime Error и перехватить момент снятия защиты.

Все эти защиты — от самого себя. А когда в офисе свирепствует

чума

KPI или что-то подобное — нужно менять инструмент или не отдавать его на сторону.

Если персонал дорос до автоподбора паролей листов — дойдет и до прямой правки XLS/ODS-файлов. Тут нужно базу данных с правами на уровне движка СУБД и безопасностью на базе ролей. Чаще всего что-то такое уже есть в офисе (1С итп.)

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, —
Не понять его никак…


Вверх
Страницы1 2 3 4 5 6 7 8

Содержание

  1. Error messages in Visual Basic
  2. Run-time errors
  3. Compile-time errors
  4. Office 2013 Visual Basic for Applications (VBA) errors
  5. Symptoms
  6. Microsoft Access
  7. Microsoft Word
  8. Microsoft Excel
  9. Cause
  10. Resolution
  11. Сообщения об ошибках в Visual Basic
  12. Ошибки во время выполнения
  13. Ошибки времени компиляции
  14. Office 2013 Visual Basic для приложений (VBA) ошибки
  15. Симптомы
  16. Microsoft Access
  17. Microsoft Word
  18. Microsoft Excel
  19. Причина
  20. Решение
  21. Обработка ошибок
  22. Типы ошибок
  23. Инструкция On Error
  24. Инструкция Resume
  25. Получение информации об ошибке и генерация ошибки
  26. Способы поиска ошибок в программе
  27. Отладка программы в VBA
  28. Подача звукового сигнала

Error messages in Visual Basic

When you compile or run a Visual Basic application, the following types of errors can occur:

Compile-time errors, which occur when you compile an application.

Run-time errors, which occur when an application is running.

For information about how to troubleshoot a specific error, see Additional Resources for Visual Basic Programmers.

Run-time errors

If a Visual Basic application tries to perform an action that the system can’t execute, a run-time error occurs, and Visual Basic throws an Exception object. Visual Basic can generate custom errors of any data type, including Exception objects, by using the Throw statement. An application can identify the error by displaying the error number and message of a caught exception. If an error isn’t caught, the application ends.

The code can trap and examine run-time errors. If you enclose the code that produces the error in a Try block, you can catch any thrown error within a matching Catch block. For information about how to trap errors at run time and respond to them in your code, see Try. Catch. Finally Statement.

Compile-time errors

If the Visual Basic compiler encounters a problem in the code, a compile-time error occurs. In the Visual Studio code editor, you can easily identify which line of code caused the error because a wavy line appears under that line of code. The error message appears if you either point to the wavy underline or open the Error List, which also shows other messages.

If an identifier has a wavy underline and a short underline appears under the rightmost character, you can generate a stub for the class, constructor, method, property, field, or enum. For more information, see Generate From Usage (Visual Studio).

By resolving warnings from the Visual Basic compiler, you might be able to write code that runs faster and has fewer bugs. These warnings identify code that may cause errors when the application is run. For example, the compiler warns you if you try to invoke a member of an unassigned object variable, return from a function without setting the return value, or execute a Try block with errors in the logic to catch exceptions. For more information about warnings, including how to turn them on and off, see Configuring Warnings in Visual Basic.

Источник

Office 2013 Visual Basic for Applications (VBA) errors

Symptoms

When you open a file or try to use macros in Microsoft Office 2013 Click 2 Run (C2R), you may experience one of the following symptoms.

Microsoft Access

Windows Installer window continuously flashes.

When you use Access wizards you get the following error:

«This feature isn’t installed, or has been disabled»

When you open the Visual Basic Editor (VBE) you get the following error:

«Microsoft Access is unable to load the Visual Basic for Applications dynamic-link library (dll) Vbe7»

Microsoft Word

After you click Macros, you get the following error:

«The function you are attempting to run contains macros or content that requires macro language support»

Microsoft Excel

When you open existing workbooks, you get the following error:

«The Visual Basic for Applications (VBA) macros in this workbook are corrupted and have been deleted.» opening existing workbooks

The Visual Basic, Macros, and Record Macro options are disabled under the Developer and View ribbon.

The Visual Basic and Macros options are disabled on the ribbon.

When you open presentations with VBA code you get the following error:

«The document contains macros. Macro language support for this application is disabled. Features requiring VBA are not available. Would you like to open this document read-only?»

Cause

Non-Microsoft registry cleaners and system maintenance applications deleted multiple registry key values that are used for VBA functionality in Microsoft Office 2013 applications.

Resolution

Run an Online Repair of Office. Here’s how:

Click Start> Control Panel> Programs and Features.

Click your Microsoft Office program, and then click Change.

Select Online Repair, and then click Repair.

After Online Repair is complete, you should be able to use your Office 2013 applications.

From the Start screen, type Control Panel in the Search box, and then tap or click Apps.

Tap or click Control Panel > Programs > Programs and Features.

Select your Microsoft Office program, and then click Change.

Select Online Repair, and then click Repair.

After Online Repair is complete, you should be able to use your Office 2013 applications.

To prevent recurrences, contact the provider of the registry cleaner or system-maintenance application.

Источник

Сообщения об ошибках в Visual Basic

При компиляции или запуске приложения Visual Basic могут возникать следующие типы ошибок:

Ошибки во время компиляции, возникающие при компиляции приложения.

Ошибки во время выполнения, возникающие при запуске приложения.

Сведения о способах устранения некоторых ошибок можно найти в статье Additional Resources for Visual Basic Programmers (Дополнительные ресурсы для программирования на Visual Basic).

Ошибки во время выполнения

Если приложение Visual Basic пытается выполнить действие, которое система не может выполнить, возникает Exception ошибка во время выполнения и Visual Basic создает объект. Visual Basic может создавать пользовательские ошибки любого типа данных, включая Exception объекты, с помощью инструкции Throw . Приложение может идентифицировать ошибки, отображая номер ошибки и сообщение перехваченного исключения. Если ошибка не будет перехвачена, приложение завершается.

Код может перехватывать и проверять ошибки времени выполнения. Если вы заключите код, создающий ошибку, в блок Try , вы сможете перехватить любую созданную ошибку в соответствующем блоке Catch . Сведения о том, как в коде отлавливать ошибки во время выполнения и реагировать на них, можно найти в статье Try. Catch. Finally Statement (Оператор Try. Catch. Finally).

Ошибки времени компиляции

Если компилятор Visual Basic обнаруживает проблему в коде, возникает ошибка времени компиляции. В редакторе кода Visual Studio можно легко определить, какая строка кода вызвала ошибку, так как волнистая строка отображается под этой строкой кода. Если навести курсор на подчеркнутый фрагмент, появляется сообщение об ошибке. Также его можно увидеть вместе с другими сообщениями в списке ошибок.

Если идентификатор имеет волнистый подчеркивание и короткое подчеркивание отображается под самым правым символом, можно создать заглушку для класса, конструктора, метода, свойства, поля или перечисления. Дополнительные сведения см. в разделе «Создание из использования» (Visual Studio).

Если вы будете правильно учитывать предупреждения компилятора Visual Basic, ваш код будет работать быстрее и с меньшим количеством ошибок. Эти предупреждения сообщают о том, что в коде могут возникнуть ошибки при запуске приложения. Например, компилятор предупреждает о вызове члена неопределенной объектной переменной, о возврате из функции без задания возвращаемого значения, а также о выполнении блока Try с ошибками в логике перехвата исключений. Дополнительные сведения о предупреждениях, в том числе о возможности включать и отключать их, см. в статье Configuring Warnings in Visual Basic (Настройка предупреждений в Visual Basic).

Источник

Office 2013 Visual Basic для приложений (VBA) ошибки

Симптомы

При открытии файла или попробуйте использовать макросы в Microsoft Office 2013 2 нажмите кнопку Run (C2R) возможно возникновение следующих проблем.

Microsoft Access

Постоянно мигает, окно установщика Windows.

При использовании мастера Access появляется следующее сообщение об ошибке:

«Это средство не установлено или была отключена»

При открытии редактора Visual Basic (VBE) появляется следующее сообщение об ошибке:

«Microsoft Access не удалось загрузить Visual Basic для приложений библиотеки динамической компоновки (dll) Vbe7»

Microsoft Word

После нажатия кнопки макросы, , вы получаете следующее сообщение об ошибке:

«Функция, которую вы пытаетесь запустить, содержит макросы или содержимое требует поддержки языка создания макросов»

Microsoft Excel

При открытии существующих книг, можно получить следующее сообщение об ошибке:

«Visual Basic для приложений (VBA) макросов в данной книге повреждены и были удалены.» Открытие существующей книги

Параметры Visual Basic, макросыи Записи макросов отключены в группе разработчиков и просмотр ленты.

Параметры Visual Basic и макросы отключаются на ленте.

При открытии презентаций с VBA-кодом возникает следующая ошибка:

«Документ содержит макросы. Для этого приложения поддержка макроязыка отключена. Компоненты, которым требуется VBA не доступны. Вы хотите открыть этот документ только для чтения?»

Причина

Очистители реестра сторонних разработчиков и обслуживание приложений системы удалены несколько разделов реестра, используемых для выполнения функций VBA в приложениях Microsoft Office 2013.

Решение

Запустите интерактивный ремонт пакета Office. Вот как:

Нажмите кнопку Пуск> Панель управления> программы и компоненты.

Выберите приложение Microsoft Office и нажмите кнопку Изменить.

Выберите Восстановление по сети и затем нажмите кнопку Восстановить.

После завершения восстановления сети следует использовать приложения Office 2013.

На начальном экране введите в поле поиска Панели управления и затем коснитесь или щелкните приложения.

Нажмите кнопку или выберите Панель управления > программы > программы и компоненты.

Выберите программу Microsoft Office и нажмите кнопку Изменить.

Выберите Восстановление по сети и затем нажмите кнопку Восстановить.

После завершения восстановления сети следует использовать приложения Office 2013.

Во избежание повторения обратитесь к поставщик очистки реестра или обслуживания системы приложений.

Источник

Обработка ошибок

Если вы когда-нибудь учились водить автомобиль, то наверняка вспомните, что при первой посадке на водительское сиденье все внимание было приковано к трем деталям: рулю, педалям и рычагу переключения передач. Происходящее вне автомобиля уходило на второй план, так как вначале нужно было стронуться с места. По мере практики навыки вождения улучшались и эти три детали постепенно уходили на задний план. Как ни странно, но руль и рычаг переключения передач всегда оказывались там, куда вы не смотря протягивали руки, а ноги сами находили педали. Теперь все внимание стало занимать происходящее на дороге. Иными словами, вы стали опытным водителем.

В программировании все абсолютно также. Начинающие программисты больше обращают внимание на первые попавшиеся на глаза операторы, функции и другие элементы языка, а сам алгоритм уходит на задний план. Если программа скомпилировалась без ошибок, то это уже большое счастье, хотя это еще не означает, что программа работает правильно. По мере практики мышление программиста меняется, он начинает обращать внимание на мелочи, на форматирование программы, использует более эффективные алгоритмы и в результате всего этого допускает меньше ошибок. Подводя итоги, можно сказать, что начинающий программист просто пишет программу, а опытный программист пытается найти оптимальный алгоритм и предусмотреть поведение программы в различных ситациях. Однако, от ошибок никто не застрахован, поэтому очень важно знать как быстро найти ошибку.

Типы ошибок

Существуют три типа ошибок в программе:

  • синтаксические — это ошибки в имени оператора или подпрограммы, отсутствие закрывающей или открывающей кавычек и т. д., то есть ошибки в синтаксисе языка. Как правило, компилятор предупредит о наличии ошибки, а программа не будет выполняться совсем;
  • логические — это ошибки в логике работы программы, которые можно выявить только по результатам работы программы. Как правило, компилятор не предупреждает о наличии ошибки, а программа будет выполняться, так как не содержит синтаксических ошибок. Такие ошибки достаточно трудно выявить;
  • ошибки времени выполнения — это ошибки, которые возникают во время работы программы. В одних случаях ошибки времени выполнения являются следствием логических ошибок, а в других случаях причиной являются внешние события, например, нехватка оперативной памяти, отсутствие прав для записи в файл и др.

Инструкция On Error

Ошибки времени выполнения можно перехватывать внутри подпрограммы. Для этого используется инструкция On Error , которая имеет три формата:

  • On Error GoTo — при возникновении ошибки управление передается инструкции, помеченной меткой . Метка должна быть допустимым идентификатором, к которому предъявляются такие же требования как и к переменным. Внутри подпрограммы метка указывается в самом начале помечаемой строки и после метки ставится двоеточие. В качестве примера создадим функцию для деления двух целых чисел. Внутри функции предусмотрим обработку ошибки деления на 0 :

Если при вызове функции во втором параметре передать значение 0 , то управление будет передано в строку, помеченную с помощью метки ПриОшибке . Обратите внимание на то, что метка расположена после инструкции Exit Function . В этом случае код после инструкции Exit Function будет выполнен только в том случае, если возникнет ошибка;

  • On Error Resume Next — при возникновении ошибки управление передается следующей инструкции;
  • On Error GoTo 0 — отключает перехват ошибок.

Если внутри подпрограммы не предусмотрен перехват ошибки, то при возникновении ошибки работа программы прерывается и выводится стандартное окно с описанием и несколькими кнопками: Continue (продолжить), End (завершить выполнение программы), Debug (перейти в режим отладки) и Help (вывод справки).

Инструкция Resume

Инструкция Resume позволяет указать куда следует переходить после обработки ошибки. Инструкция имеет несколько форматов:

  • Resume [0] — управление передается инструкции, вызвавшей ошибку;
  • Resume Next — управление передается инструкции, следующей за инструкцией, вызвавшей ошибку;
  • Resume — управление передается инструкции, помеченной меткой .

Если инструкция Resume не указана, то выполняется только код внутри обработчика ошибки и производится выход из подпрограммы.

Получение информации об ошибке и генерация ошибки

Вся информация о последней ошибке доступна через объект Err . Объект содержит следующие свойства:

  • Number — код ошибки, например, код 11 для ошибки деления на 0 . Если ошибки не произошло, то свойство содержит значение 0 ;
  • Description — описание ошибки, например, строка «Division by zero» для ошибки деления на 0 . Пример вывода кода и описания ошибки:
  • Source — название текущего проекта;
  • HelpFile — путь к файлу справки;
  • HelpContext — идентификатор раздела в справочном файле;
  • LastDLLError — системный код ошибки при работе с DLL.

Объект Err содержит следующие методы:

  • Clear() — очищает всю информацию о последней ошибке. Этот метод следует вызвать после успешной обработки ошибки. Информация об ошибке автоматически очищается при выходе из подпрограммы и ряде других случаев;
  • Raise() — позволяет сгенерировать ошибку в программе. Формат метода:

В параметре Number указывается код генерируемой ошибки (целое число от 0 до 65 535 ). Коды от 0 до 512 зарезервированы под системные ошибки, а остальные коды можно использовать под пользовательские ошибки. Чтобы сгенерировать ошибку с пользовательским кодом необходимо сложить код с константой vbObjectError . Остальные параметры являются необязательными и полностью аналогичны одноименным свойствам объекта Err . Пример генерации и обработки пользовательской ошибки:

Способы поиска ошибок в программе

В предыдущих разделах мы научились обрабатывать ошибки времени выполнения. Однако, наибольшее количество времени программист затрачивает на другой тип ошибок — логические ошибки. В этом случае программа компилируется без ошибок, но результат выполнения программы не соответствует ожидаемому результату. Ситуация еще более осложняется, когда неверный результат проявляется лишь периодически, а не постоянно. Инсценировать такую же ситуацию, чтобы получить этот же неверный результат, бывает крайне сложно и занимает очень много времени. В этом разделе мы рассмотрим лишь «дедовские» (но по прежнему актуальные) способы поиска ошибок, а современные способы отладки приложений, доступные в VBA, изучим в следующем разделе.

Первое, на что следует обратить внимание, — на объявления переменных. Например, рассмотрим простой пример:

Как вы думаете, какое значение отобразится в окне Immediate после выполнения этого кода? Думаете, что число 10? Не факт! Вот тут-то и кроется проблема не видная на первый взгляд. В первой инструкции присваивается значение переменной x , имя которой набрано на английской раскладке клавиатуры, а вот во второй инструкции выводится значение переменной x , имя которой набрано на русской раскладке клавиатуры. В результате значение присваивается одной переменной, а выводится значение другой переменной. Такие ситуации очень часто встречаются в программах на языке VBA, так как объявлять переменную не обязательно. Чтобы избежать такой ситуации следует обязательно объявлять переменные явным образом. Контроль за соблюдением этого правила можно возложить на компилятор, добавив в начале модуля следующую инструкцию:

При наличии инструкции компилятор производит проверку объявления всех переменных. Если переменная не была объявлена явным образом, то компилятор выведет сообщение об ошибке и выполнение программы будет остановлено. Таким образом, код должен выглядеть следующим образом:

Далее следует обратить внимание на форматирование кода. Начинающие программисты обычно не обращают на это никакого внимания, считая этот процесс лишним. А на самом деле зря! Компилятору абсолютно все равно, разместите вы все инструкции на одной строке или выполните форматирование кода. Однако, при поиске ошибок форматирование кода позволит найти ошибку гораздо быстрее.

Перед всеми инструкциями внутри блока должно быть расположено одинаковое количество пробелов. Обычно используют три или четыре пробела. От применения символов табуляции лучше отказаться. Если все же используете, то не следует в одном файле совмещать и пробелы и табуляцию. Для вложенных блоков количество пробелов умножают на уровень вложенности. Если для блока первого уровня вложенности использовалось три пробела, то для блока второго уровня вложенности должно использоваться шесть пробелов, для третьего уровня — девять пробелов и т. д. Пример форматирования вложенных блоков приведен в листинге 11.1.

Листинг 11.1. Пример форматирования вложенных блоков

Длина одной строки не должна содержать более 80 символов. Если количество символов больше, то следует выполнить переход на новую строку. При этом продолжение смещается относительно основной инструкции на величину отступа или выравнивается по какому-либо элементу. Иначе приходится пользоваться горизонтальной полосой прокрутки, а это очень неудобно при поиске ошибок.

Если программа слишком большая, то следует задуматься о разделении программы на отдельные подпрограммы или классы, которые выполняют логически законченные действия. Помните, что отлаживать отдельную подпрограмму гораздо легче, чем «спагетти»-код. Причем прежде чем вставить подпрограмму (или класс) в основную программу ее следует протестировать в отдельном проекте, передавая подпрограмме различные значения и проверяя результат ее выполнения.

Обратите внимание на то, что форматирование кода должно выполняться при написании кода, а не во время поиска ошибок. Этим вы сократите время поиска ошибки и скорее всего заметите ошибку еще на этапе написания. Если все же ошибка возникла, то вначале следует инсценировать ситуацию, при которой ошибка проявляется. После этого можно начать поиск ошибки.

Причиной периодических ошибок чаще всего являются внешние данные. Например, если числа получаются от пользователя, а затем производится деление чисел, то вполне возможна ситуация, при которой пользователь введет число 0 . Деление на ноль приведет к ошибке. Следовательно, все данные, которые поступают от пользователей, должны проверяться на соответствие допустимым значениям. Если данные не соответствуют, то нужно вывести сообщение об ошибке, а затем повторно запросить новое число или прервать выполнение всей программы. Кроме того, нужно обработать возможность того, что пользователь может ввести вовсе не число, а строку.

Метод Print() объекта Debug удобно использовать для вывода промежуточных значений. В этом случае значения переменных вначале выводятся в самом начале программы и производится проверка соответствия значений. Если значения соответствуют, то инструкция с методом Print() перемещается на следующую строку программы и опять производится проверка и т. д. Если значения не совпали, то ошибка возникает в инструкции, расположенной перед инструкцией с методом Print() . Если это пользовательская подпрограмма, то проверку значений производят внутри подпрограммы, каждый раз перемещая инструкцию с выводом значений. На одном из этих многочисленных этапов ошибка обычно обнаруживается. В больших программах можно логически догадаться о примерном расположении инструкции с ошибкой и начать поиск ошибки оттуда, а не с самого начала программы.

Инструкции для вывода промежуточных значений можно расставить уже при написании программы, не дожидаясь возникновения ошибки. В этом случае в начале программы объявляется константа с помощью инструкции #Const , а внутри программы производится проверка значения константы:

Проверить значение константы позволяет следующая конструкция:

Таким образом, меняя значение константы MY_DEBUG с 1 на 0 , можно отлючать вывод всех промежуточных значений.

Отладка программы в VBA

Сделать поиск ошибок более эффективным позволяет отладчик, встроенный в редактор VBA. С его помощью можно выполнять программу по шагам, при этом контролируя значения переменных на каждом шагу. Отладчик позволяет также проверить, соответствует ли порядок выполнения инструкций разработанному ранее алгоритму.

Прежде чем начать отладку необходимо пометить строки внутри программы с помощью точек останова. Для добавления точки останова делаем строку активной, а затем из меню Debug выбираем пункт Toggle Breakpoint. Слева от строки появится кружок, обозначающий точку останова. Добавить точку останова можно еще быстрее. Для этого достаточно щелкнуть слева от строки левой кнопкой мыши. Повторный щелчок позволяет удалить точку останова. Кроме того, для добавления или удаления точки отстанова можно воспользоваться клавишей . Чтобы удалить все точки останова следует из меню View выбрать пункт Clear All Breakpoints.

Когда точки останова расставлены можно начать отладку. Для этого запускаем программу на выполнение обычным способом. При достижении точки останова выполнение программы прерывается и отладчик ожидает дальнейших действий программиста. Инструкция, которая будет выполняться на следующем шаге, помечается желтой стрелкой слева от строки.

В режиме прерывания можно посмотреть значения различных переменных в окне Locals. Если окно не отображается, то отобразить его можно выбрав в меню View пункт Locals Window. Посмотреть значение переменной можно также если навести указатель мыши на переменную. Значение переменной отобразится во всплывающей подсказке.

При отладке можно контролировать значения отдельных переменных, а не всех сразу. Для этого следует выделить название переменной и из меню Debug выбрать пункт Add Watch. Можно также выделить название переменной и из контектного меню выбрать пункт Add Watch. В открывшемся окне устанавливаем флажок Watch Expression и нажимаем кнопку OK. Значение переменной будет отображаться в окне Watches. Чтобы отобразить окно Watches из меню View выбираем пункт Watch Window. Чтобы отменить отслеживание нужно выделить строку в окне Watches и нажать клавишу .

Для пошагового выполнения программы предназначены следующие пункты в меню Debug или соответствующие кнопки на панели инструментов Debug ( View | Toolbars | Debug):

  • Step Into (клавиша ) — выполняет переход к следующей инструкции;
  • Step Over — выполняет одну инструкцию. Если в этой инструкции производится вызов подпрограммы, то подпрограмма выполняется за один шаг и отладчик переходит в режим ожидания после выхода из подпрограммы;
  • Step Out — при заходе в подпрограмму этот пункт позволяет выполнить подпрограмму за один шаг и выйти из нее. Отладчик переходит в режим прерывания после выхода из подпрограммы;
  • Run To Cursor — выполняет переход к инструкции, в которой расположен курсор.

Если необходимо посмотреть последовательность вызова подпрограмм, то следует открыть окно Call Stack, выбрав в меню View пункт Call Stack.

Подача звукового сигнала

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

Статьи по Visual Basic for Applications (VBA)

Помощь сайту

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

Источник

  • Описание ошибки

  • Решение проблемы

  • В Internet Explorer

  • В приложениях и играх

Технологии не стоят на месте. Вспомните, какими были сайты 15 лет назад. Лишь текст на цветном фоне. Ни анимации, ни плавных переходов, ни разнообразия функций. Сейчас же многие визуальные эффекты и функции реализованы с помощью скриптов. Так давайте рассмотрим, как исправить ошибку сценария в Windows?
Ошибка скрипта

Описание ошибки

Ошибка сценария – это сбой в работе скрипта, который выполняет ту или иную функцию на веб странице. И не удивляйтесь, если подобная проблема появилась во время игры, установленной на ПК, – они тоже реализуют свой функционал с помощью JavaScript и Visual Basic. К счастью, никаких фатальных последствий для личных данных и системы в целом ошибка скрипта не представляет. А лечится проблема несколькими простыми способами.

Решение проблемы

Универсальных способов не существует, поэтому для начала нужно знать, при использовании чего появляется сообщение о сбое. Не удивительно, что в нашем списке есть Internet Explorer – браузер лидирует во многих антирейтингах по стабильности и производительности, поэтому рекомендуется заменить его на более качественный аналог. Возможно, это и будет лучшим решением данной проблемы.

В Internet Explorer

Но если вы истинный фанат софта от Microsoft или просто прикипели за долгие годы к приложению, то выполните следующее:

  1. Откройте браузер и перейдите на страницу, на которой отображалось сообщение об ошибке.
  2. Обновите страницу с очисткой кэша, нажав Ctrl+F5.
  3. Проверьте наличие проблемы.

Если ошибка скрипта не появляется – поздравляю! Иначе – переходите к следующим пунктам:

  1. Перейдите в «Меню» – «Свойства браузера».
    Свойства в Internet Explorer
  2. Откройте вкладку «Дополнительно».
  3. Установите параметры работы скриптов в соответствии с данными на скриншоте.
    Отключение отладки сценариев в Internet Explorer
  4. Сохраняем параметры нажатием кнопки «ОК».
  5. Далее перейдите во вкладку «Безопасность» и нажмите кнопку «Выбрать уровень безопасности по умолчанию для всех зон».
    Выбор уровня безопасности для зон
  6. После этого откройте вкладку «Общие» и нажмите кнопку «Удалить» в подкатегории «Журнал браузера».
    Удаление данных в журнале
  7. Выберите все поля и нажмите кнопку «Удалить».
    Выбор категории удаляемых данных

    Внимание! При очистке паролей все сохраненные данные для входа на сайты удалятся! Убедитесь, что знаете всю необходимую информацию. В противном случае не отмечайте пункт «Пароли».

В приложениях и играх

Для решения проблем с ошибкой сценария в приложениях и играх выполните несколько шагов:

  1. Откройте окно «Выполнить» нажав Win+R.
  2. В текстовое поле окна введите regedit и нажмите «ОК».
    Создание задачи
  3. В новом окне ищем HKEY_LOCAL_MACHINE, нажимаем ПКМ по полю и выбираем пункт «Разрешения».
  4. Ставим галочки напротив всех доступных полей в столбце «Разрешить».
    Изменение разрешений в реестре
  5. Далее нажимаем кнопку «Дополнительно».
  6. Кликаем на поле, где в столбце «Субъект» стоит значение «Все» и нажимаем кнопку «Изменить».
    Изменение разрешений в реестре
  7. В новом окне устанавливаем галочку возле поля «Полный доступ» и нажимаем «ОК».
    Изменение разрешений в реестре
  8. Перезагружаем компьютер.

Теперь осталось зарегистрировать внесенные изменения:

  1. Откройте окно «Выполнить» нажав Win+R.
  2. Введите команду cmd и нажмите «ОК».
    Вызов командной строки
  3. В командной строке наберите regsvr32 msxml.dll и нажмите Enter.
  4. Перезапустите устройство.

Выше представлены исчерпывающие методы, которые работают в 99% случаев. Теперь вы знаете, что такое ошибка скрипта и как ее исправить. Если известен какой-либо другой способ – поделитесь им в комментариях. Удачи!

92 / 74 / 24

Регистрация: 31.03.2013

Сообщений: 257

1

05.06.2014, 21:56. Показов 3990. Ответов 1


Я и переустановил уже, но все в пустую.
Когда-то стоял некий PDF конвертер для OpenOffice. И теперь каждый раз выходит ошибка, что не найден скрипт basic. Где его искать? В макросах смотрел Basic и ничего там нету.

Не по теме:

я знаю, что такой print screen :)

Миниатюры

Каждый раз при запуске выходит ошибка скрипта Basic
 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

92 / 74 / 24

Регистрация: 31.03.2013

Сообщений: 257

06.06.2014, 08:58

 [ТС]

2

Решено. Удалил папку по пути C:Documents and SettingsАдминистраторApplication DataOpenOfficeВерсияuser
После запуска OpenOffice он повторно все это создал.
Теперь все работает)

0

После защиты паролем через библиотеку, макрос перестал работать

Автор Konstanta, 7 февраля 2020, 10:54

0 Пользователи и 1 гость просматривают эту тему.

Вниз
Страницы1 2 3 4 5 6 7 8

Приветствую всех жителей форума!
Избитая тема «защиты данных паролем» задаёт новые загадки.
Недобросовестные пользователи внутренней отчётности, которая влияет на премию конкретных сотрудников, узнали что пароль на защиту листа находится в меню Сервис => макросы
и просто снимают его не напрягаясь перебором и прочими техническими штуками.
Естественно я попытался поставить пароль на сам макрос (Сервис=> Управление макросами=> Макросы LibreOffice BASIC=> Управление=> Библиотеки=> Выбираем наш файл с макросами (не стандарт) и вводим пароль.
Всё здорово!
Только теперь при нажатии кнопки макроса выходит сообщение вида:

«Ошибка сценария при выполнении сценария Basic vnd.sun.star.script:VBAProject.Module1.Текст?language=Basic&location=document.»

Но если войти в редактор макросов и ввести тот самый пароль, то макрос вполне нормально работает.
Я так полагаю что где-то есть параметр типа «на чтение» или «на исполнение».
Подскажите пожалуйста, кто в курсе: как добиться выполнения макроса, не снимая пароля.

Файлик примера приложен.
Всем Спасибо!


Тут целая куча проблем.
Во-первых, проекты VBA (VBAProject, то есть те, которые остались после конвертирования из MS Office) вообще не поддерживаются при шифровании. Сохраните макрос в нормальной библиотеке ЛО.

Во-вторых, у запароленных библиотек есть проблемы с локализованными строками (например, решённый баг 57113, а также нерешённый баг с локализованными именами функций — но эта проблема Вас не затронет, если Вы используете русский интерфейс ЛО.)

В третьих, VBASupport, похоже, не работает даже в нормальных библиотеках с паролем.


А есть возможность не хранить пароль в тексте макроса, чтобы он не был виден непосвящённым пользователям?



в тексте макроса перед выполнением операций макрос снимает защиту с листа «
ActiveSheet.Unprotect «ПАРОЛЬ»

А после выполнения операций

ActiveSheet.Protect «ПАРОЛЬ»



В книге масса значений, подгруженных из достоверных источников, которые запрещено менять.
Бывали случаи когда сотрудники (у нас их более 30) «ручками» корректировали себе показатели, чтобы повысить премии.
Выловить это достаточно сложно.
Поэтому редактирование возможно только тех ячеек, которые не защищены (они под контролем находятся)
Простая защита (без пароля) просто отключается.
С паролем работала несколько лет.
Но появилось несколько умников, которые просто смотрят в тексте макроса пароль.


Я не спрашивал, зачем нужен пароль (пусть даже и слабенький: защита листа — это ерунда, которую может обойти любой желающий, не зная пароля).

Я спрашивал: зачем Вы снимаете пароль в макросе (и затем приходится его возвращать)?


я понял, извините …
Я наверное совсем дилетант и то, что напишу Вас удивит, но
на каждом листе макрос выполняет кучу операций, заполняя защищённые ячейки нужными данными.
на защищённом листе макрос не работает, поскольку лист защищён.

Поэтому сначала снимаю защиту, потом обрабатываю ячейки, потом ставлю защиту.


Цитата: Konstanta от  7 февраля 2020, 12:27на защищённом листе макрос не работает, поскольку лист защищён.

Вы пробовали? По крайней мере Ваш макрос прекрасно меняет защищённые ячейки B2 и B3 в ЛО 6.4.0.3, даже если убрать строки со снятием/возвращением пароля.


А вот для меня это новость!!!
Excel так не умеет…
При изменении макросом защищённой ячейки он ругается!
Про Libre этой возможности я просто не знал.
Получается, что можно защитить лист (от дурака) своим паролем и не париться со снятием и постановкой защиты …
Я попробую более сложные вещи, со скрытием и раскрытием строк, столбов и прочих нюансов
Спасибо огромное, за просвещение!


Цитата: Konstanta от  7 февраля 2020, 12:20Бывали случаи когда сотрудники (у нас их более 30) «ручками» корректировали себе показатели, чтобы повысить премии.

оффтоп, но вам не кажется, что тут что-то не так? А где контроль за их фактическими показателями со стороны руководителя подразделения?


Так на местах «руководители подразделения» и щёлкают клювами, пропуская эти вещи…
А когда выгруженные отчёты попадают в фин-отдел, там уже не видно тех показателей, на которых всё основано.
Потом конечно всё всплывает в итоге, но время уходит и силы тратятся…
Но это уже другая тема :)


При удалении снятия защиты в реальном рабочем файле макрос всё же ругается на то, что невозможно изменить защищённые ячейки.
Так что тема актуальна.


Konstanta — Calc (особенно некотоорые старые версии) — легко обходят все Excel-примочки защиты с паролями листов/книг итп, Sheet().Visible = xlVeryHidden и прочим. Поэтому защитить ничего надежно не получится.

Кроме того, подсунув невалидные данные в ячейки — можно вызвать Runtime Error и перехватить момент снятия защиты.

Все эти защиты — от самого себя. А когда в офисе свирепствует

чума

KPI или что-то подобное — нужно менять инструмент или не отдавать его на сторону.

Если персонал дорос до автоподбора паролей листов — дойдет и до прямой правки XLS/ODS-файлов. Тут нужно базу данных с правами на уровне движка СУБД и безопасностью на базе ролей. Чаще всего что-то такое уже есть в офисе (1С итп.)

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, —
Не понять его никак…


Вверх
Страницы1 2 3 4 5 6 7 8

Correct handling of error situations is one of the most time-consuming tasks of programming. Apache OpenOffice Basic provides a range of tools for simplifying error handling.

The On Error Instruction

The On Error instruction is the key to any error handling:

Sub Test
  On Error Goto ErrorHandler
  ' ... undertake task during which an error may occur
  Exit Sub
  ErrorHandler: 
    ' ... individual code for error handling
End Sub

The On Error Goto ErrorHandler line defines how Apache OpenOffice Basic proceeds in the event of an error. The Goto ErrorHandler ensures that Apache OpenOffice Basic exits the current program line and then executes the ErrorHandler: code.

The Resume Command

The Resume Next command continues the program from the line that follows where the error occurred in the program after the code in the error handler has been executed:

ErrorHandler:
  ' ... individual code for error handling
  Resume Next

Use the Resume Proceed command to specify a jump point for continuing the program after error handling:

ErrorHandler:
  ' ... individual code for error handling
  Resume Proceed
 
Proceed:
  ' ... the program continues here after the error

The term Proceed is a label. It could be for example, A247. The syntax for label names is the same as for variable names.

To continue a program without an error message when an error occurs, use the following format:

Sub Test
  On Error Resume Next
  ' ... perform task during which an error may occur
End Sub

Use the On Error Resume Next command with caution as its effect is global.

Queries Regarding Error Information

In error handling, it is useful to have a description of the error and to know where and why the error occurred:

  • The Err variable contains a number identifying the type of error that has occurred.
  • The Error$ variable contains a description of the error.
  • The Erl variable contains the line number where the error occurred.

The call

 MsgBox "Error " & Err & ": " & Error$ & " (line : " & Erl & ")"

shows how the error information can be displayed in a message window.

Documentation note.png VBA : Whereas VBA summarizes the error messages in a global object called Err, Apache OpenOffice Basic provides the Err, Error$, and Erl variables.

The status information remains valid until the program encounters a Resume or On Error command, whereupon the information is reset.

Documentation note.png VBA : In VBA, the Err.Clear method of the Err object resets the error status after an error occurs. In Apache OpenOffice Basic, this is accomplished with the On Error or Resume commands.

Tips for Structured Error Handling

Both the definition command, On Error, and the return command, Resume, are variants of the Goto construct.

If you want to cleanly structure your code to prevent generating errors when you use this construct, you should not use jump commands without monitoring them.

Care should be taken when you use the On Error Resume Next command as this dismisses all open error messages.

The best solution is to use only one approach for error handling within a program — keep error handling separate from the actual program code and do not jump back to the original code after the error occurs.

The following code is an example of an error handling procedure:

Sub Example
  ' Define error handler at the start of the function 
  On Error Goto ErrorHandler   
    ' ... Here is the actual program code
  On Error Goto 0           ' Deactivate error handling
    ' End of regular program implementation
  Exit Sub
 
 ' Start point of error handling
 ErrorHandler:                
   ' Check whether error was expected
    If Err = ExpectedErrorNo Then   
      ' ... Process error
    Else
      ' ... Warning of unexpected error
    End If
 On Error Goto 0            ' Deactivate error handling 
End Sub

This procedure begins with the definition of an error handler, followed by the actual program code. At the end of the program code, the error handling is deactivated by the On Error Goto 0 call and the procedure implementation is ended by the Exit Sub command (not to be confused with End Sub).

The example first checks if the error number corresponds to the expected number (as stored in the imaginary ExpectedErrorNo constant) and then handles the error accordingly. If another error occurs, the system outputs a warning. It is important to check the error number so that unanticipated errors can be detected.

The On Error Goto 0 call at the end of the code resets the status information of the error (the error code in the Err system variables) so that an error occurring at a later date can be clearly recognized.

В этой статье представлена ошибка с номером Ошибка 91, известная как Ошибка выполнения Openoffice Basic 91, описанная как Ошибка 91: Возникла ошибка в приложении OpenOffice. Приложение будет закрыто. Приносим свои извинения за неудобства.

О программе Runtime Ошибка 91

Время выполнения Ошибка 91 происходит, когда OpenOffice дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

Определения (Бета)

Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

  • Basic — Универсальный код символьных инструкций BASIC для начинающих — это семейство языков программирования высокого уровня, разработанных для простоты использования.
  • Openoffice basic — OpenOffice.org Basic — это язык программирования, основанный на StarOffice Basic и похожий на Microsoft VBA.
  • Runtime — Runtime — это время, в течение которого программа работает, выполняется
  • Ошибка выполнения — ошибка выполнения обнаруживается после или во время выполнения программы.
Симптомы Ошибка 91 — Ошибка выполнения Openoffice Basic 91

Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.

Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

Fix Ошибка выполнения Openoffice Basic 91 (Error Ошибка 91)
(Только для примера)

Причины Ошибка выполнения Openoffice Basic 91 — Ошибка 91

При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.

Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.

Методы исправления

Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

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

Метод 1 — Закройте конфликтующие программы

Когда вы получаете ошибку во время выполнения, имейте в виду, что это происходит из-за программ, которые конфликтуют друг с другом. Первое, что вы можете сделать, чтобы решить проблему, — это остановить эти конфликтующие программы.

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 5 — Запустить очистку диска

Вы также можете столкнуться с ошибкой выполнения из-за очень нехватки свободного места на вашем компьютере.

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 6 — Переустановите графический драйвер

Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

Если эти быстрые исправления не работают, вы всегда можете сделать резервную копию файлов и запустить восстановление на вашем компьютере. Однако вы можете сделать это позже, когда перечисленные здесь решения не сработают.

Другие языки:

How to fix Error 91 (Openoffice Basic Runtime Error 91) — Error 91: OpenOffice has encountered a problem and needs to close. We are sorry for the inconvenience.
Wie beheben Fehler 91 (Openoffice Basic Runtime Error 91) — Fehler 91: OpenOffice hat ein Problem festgestellt und muss geschlossen werden. Wir entschuldigen uns für die Unannehmlichkeiten.
Come fissare Errore 91 (Errore di runtime di base di Openoffice 91) — Errore 91: OpenOffice ha riscontrato un problema e deve essere chiuso. Ci scusiamo per l’inconveniente.
Hoe maak je Fout 91 (Openoffice Basic Runtime-fout 91) — Fout 91: OpenOffice heeft een probleem ondervonden en moet worden afgesloten. Excuses voor het ongemak.
Comment réparer Erreur 91 (Erreur d’exécution de base Openoffice 91) — Erreur 91 : OpenOffice a rencontré un problème et doit se fermer. Nous sommes désolés du dérangement.
어떻게 고치는 지 오류 91 (Openoffice 기본 런타임 오류 91) — 오류 91: OpenOffice에 문제가 발생해 닫아야 합니다. 불편을 드려 죄송합니다.
Como corrigir o Erro 91 (Openoffice Basic Runtime Error 91) — Erro 91: O OpenOffice encontrou um problema e precisa fechar. Lamentamos o inconveniente.
Hur man åtgärdar Fel 91 (Openoffice Basic Runtime Error 91) — Fel 91: OpenOffice har stött på ett problem och måste avslutas. Vi är ledsna för besväret.
Jak naprawić Błąd 91 (Openoffice Basic Runtime Error 91) — Błąd 91: OpenOffice napotkał problem i musi zostać zamknięty. Przepraszamy za niedogodności.
Cómo arreglar Error 91 (Error 91 en tiempo de ejecución básico de Openoffice) — Error 91: OpenOffice ha detectado un problema y debe cerrarse. Lamentamos las molestias.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Рекомендуемый инструмент для ремонта:

Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX09134RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

  • Печать

Страницы: [1]   Вниз

Тема: Правила BASIC не работают в макросах LibreOffice, или почему не едут лыжи?  (Прочитано 8922 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
MAMOHT

Дорогому All-у доброго времени суток и года!
«Всё было хорошо пока не занялся программированием…»
                                        «МАМОНТ. Copyright 11:21 29.06.2012 г.»
Как древний виндузятник порочащий весь и вся Человечную ОС по воле судьбы был приговорён к освоению софта под Линукс. И вот, при попытке написания макросов под LibreOffice, столкнулся с такими вот траблами:

При создании книжного макроса:

Sub MyCursor
  Dim Doc As Object
  Dim Cursor As Object
  Dim sPath As String

  Doc = StarDesktop.CurrentComponent
  Cursor = Doc.Text.createTextCursor()

Вот здесь выскакивает окно сообщения с надписью: «Свойство или метод не найдены: Text»

…..........
…........
  sPath = CurDir$
  MsgBox sPath
А здесь в сообщении чётко указана моя домашняя директория, но НЕ ТА директория в которой СЕЙЧАС открыт документ.

…......
End Sub

Проблема:
Из чьей кожи надо сделать бубен и какие изучить PAS, чтобы при составлении макроса на BASIC в LibreOffice 3.5.4.2 ID сборки: 350m1(Build:2) системы Ubuntu 10.04.4 всё-таки РАБОТАЛО правило Cursor = Doc.Text.createTextCursor() и как мне получить ТУ ТЕКУЩУЮ директорию в которой сейчас открыт АКТИВНЫЙ документ?

Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.
Спасибо за понимание.

« Последнее редактирование: 29 Июня 2012, 15:56:47 от Чистый »


Оффлайн
Señor_Gaga

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.


Оффлайн
MAMOHT

>>Ожидаю конкретных, корректных без словоблудства предложений по решению этих, как-бы на чей то взгляд, проблем.

Если мне изменяет память — бейсик идет только для msWord.
Для ОО и LO есть свой скриптовый язык.

Вторую часть КАК-БЫ проблемы КАК-БЫ решил. Правда использованием не кратчайшего пути: это КАК-БЫ проехать в Париж через Владивосток. Нашёл описание на 114 странице книги Эндрю Питоньяк (Andrew Pitonyak)OpenOffice.org pro. Автоматизация работы.

Теперь к Señor_Gaga. Здесь точно КТО-ТО ошибается!!!

Переписываю дословно окно сообщения:
«Ошибка времени выполнения BASIC.
Свойство или метод не найдены: TEXT»


Оффлайн
brij

Не могу сейчас точно ответить на Ваш вопрос, но просто вспомнил, что у Питоньяка есть много чего по макросам ЛО. Наверняка, Вам уже это известно, но все же на всякий пожарный  ;) Если дружите с английским, то здесь http://www.pitonyak.org/oo.php/ можно найти очень много полезного, особенно мне когда-то сильно помог его «Macro document» http://www.pitonyak.org/oo.php/AndrewMacro.pdf. Там кстати, есть и его еще незаконченный список параллелей с VBA. Может пригодится.


Оффлайн
Dixi257


  • Печать

Страницы: [1]   Вверх

Я новичок в Python и Basic. Я пытаюсь реплицировать функцию ImportHtml из Google Таблиц в Libre Office (LO) Calc. В двух словах я хочу создать базовую функцию GetHtmTable (Url, Table Index) Basic в Calc, которая вызовет скрипт Python для выполнения тяжелой работы.

Поэтому, основываясь на замечательном примере Villeroy, https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=73145&p=329658, я реализовал в LO 5.1.6.2. основная функция SOUNDEX, которая вызывает скрипт sheetFunctions.py чтобы ознакомиться с процессом. Моя среда — Linux Mint 18, я использую Python3, я импортировал все типы библиотек, таких как Uno, PIP и т.д. Я использую PycharmProjects как редактор Python.

Я вижу в меню LO Calc tools-> macro-> organiz macros-> python sheetFunctions.py python sheetFunctions.py, который действительно находится в папке /usr/lib/libreoffice/share/Scripts/python.

Всякий раз, когда я запускаю функцию SOUNDEX Basic, я получаю следующее сообщение об ошибке:

BASIC runtime error.
An exception occurred
Type: com.sun.star.script.provider.ScriptFrameworkErrorException
Message: <class 'pythonscript.com.sun.star.ucb.InteractiveAugmentedIOException'>: an error occurred during file opening
/usr/lib/libreoffice/program/pythonscript.py:429 in function getModuleByUrl() [lastRead = self.sfa.getDateTimeModified( url )]
/usr/lib/libreoffice/program/pythonscript.py:993 in function getScript() [mod = self.provCtx.getModuleByUrl( fileUri )]

Я попытался отладить базовую функцию SOUNDEX и обнаружил, что точка блокировки — это когда программа запускает getScript("vnd.sun.star.script:sheetFunctions.py$soundex?language=Python&location=user").

Я уже несколько дней пытаюсь преодолеть эту ошибку, безуспешно признаюсь. Интересно, нужно ли мне добавлять дополнительные расширения в базовую среду или отсутствующую надстройку в Linux/Python? Я изменил местоположение = пользователь по местоположению = документ и снова застрял. Я добавил недавно libreoffice-script-provider-python благодаря команде sudo apt-get install libreoffice-script-provider-python но это не помогло. Я также встроил в документ calc скрипт Python, но это не решило проблему.

Icon Ex Номер ошибки: Ошибка 35
Название ошибки: Openoffice Basic Runtime Error 35
Описание ошибки: Ошибка 35: Возникла ошибка в приложении OpenOffice. Приложение будет закрыто. Приносим извинения за неудобства.
Разработчик: Apache
Программное обеспечение: OpenOffice
Относится к: Windows XP, Vista, 7, 8, 10, 11

Сводка «Openoffice Basic Runtime Error 35

Обычно люди ссылаются на «Openoffice Basic Runtime Error 35» как на ошибку времени выполнения (ошибку). Программисты, такие как Apache, стремятся создавать программное обеспечение, свободное от этих сбоев, пока оно не будет публично выпущено. К сожалению, некоторые критические проблемы, такие как ошибка 35, часто могут быть упущены из виду.

Ошибка 35 также отображается как «Openoffice Basic Runtime Error 35». Это распространенная ошибка, которая может возникнуть после установки программного обеспечения. Если происходит «Openoffice Basic Runtime Error 35», разработчикам будет сообщено об этой проблеме, хотя отчеты об ошибках встроены в приложение. Затем программисты могут исправить эти ошибки в коде и включить исправление, которое можно загрузить с их веб-сайта. Таким образом при выполнении обновления программного обеспечения OpenOffice, он будет содержать исправление для устранения проблем, таких как ошибка 35.

Что на самом деле вызывает ошибку времени выполнения 35?

Наиболее распространенные вхождения «Openoffice Basic Runtime Error 35» проблемы при загрузке OpenOffice. Проанализируем некоторые из наиболее распространенных причин ошибок ошибки 35 во время выполнения:

Ошибка 35 Crash — ошибка 35 блокирует любой вход, и это может привести к сбою машины. Обычно это происходит, когда OpenOffice не может обрабатывать предоставленный ввод или когда он не знает, что выводить.

Утечка памяти «Openoffice Basic Runtime Error 35» — ошибка 35 утечка памяти приводит к тому, что OpenOffice постоянно использует все больше и больше памяти, увяская систему. Это может быть вызвано неправильной конфигурацией программного обеспечения Apache или когда одна команда запускает цикл, который не может быть завершен.

Ошибка 35 Logic Error — Логические ошибки проявляются, когда пользователь вводит правильные данные, но устройство дает неверный результат. Это происходит, когда исходный код Apache вызывает уязвимость при обработке информации.

Apache проблемы файла Openoffice Basic Runtime Error 35 в большинстве случаев связаны с повреждением, отсутствием или заражением файлов OpenOffice. В большинстве случаев скачивание и замена файла Apache позволяет решить проблему. Более того, поддержание чистоты реестра и его оптимизация позволит предотвратить указание неверного пути к файлу (например Openoffice Basic Runtime Error 35) и ссылок на расширения файлов. По этой причине мы рекомендуем регулярно выполнять очистку сканирования реестра.

Распространенные проблемы Openoffice Basic Runtime Error 35

Типичные ошибки Openoffice Basic Runtime Error 35, возникающие в OpenOffice для Windows:

  • «Ошибка в приложении: Openoffice Basic Runtime Error 35»
  • «Ошибка программного обеспечения Win32: Openoffice Basic Runtime Error 35»
  • «Извините, Openoffice Basic Runtime Error 35 столкнулся с проблемой. «
  • «К сожалению, мы не можем найти Openoffice Basic Runtime Error 35. «
  • «Openoffice Basic Runtime Error 35 не может быть найден. «
  • «Ошибка запуска программы: Openoffice Basic Runtime Error 35.»
  • «Openoffice Basic Runtime Error 35 не выполняется. «
  • «Отказ Openoffice Basic Runtime Error 35.»
  • «Ошибка в пути к программному обеспечению: Openoffice Basic Runtime Error 35. «

Эти сообщения об ошибках Apache могут появляться во время установки программы, в то время как программа, связанная с Openoffice Basic Runtime Error 35 (например, OpenOffice) работает, во время запуска или завершения работы Windows, или даже во время установки операционной системы Windows. При появлении ошибки Openoffice Basic Runtime Error 35 запишите вхождения для устранения неполадок OpenOffice и чтобы HelpApache найти причину.

Источники проблем Openoffice Basic Runtime Error 35

Заражение вредоносными программами, недопустимые записи реестра OpenOffice или отсутствующие или поврежденные файлы Openoffice Basic Runtime Error 35 могут создать эти ошибки Openoffice Basic Runtime Error 35.

В первую очередь, проблемы Openoffice Basic Runtime Error 35 создаются:

  • Недопустимая или поврежденная запись Openoffice Basic Runtime Error 35.
  • Загрязненный вирусом и поврежденный Openoffice Basic Runtime Error 35.
  • Другая программа (не связанная с OpenOffice) удалила Openoffice Basic Runtime Error 35 злонамеренно или по ошибке.
  • Openoffice Basic Runtime Error 35 конфликтует с другой программой (общим файлом).
  • Неполный или поврежденный OpenOffice (Openoffice Basic Runtime Error 35) из загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Сообщение «на этой странице произошла ошибка сценария» на Windows компьютере явно сигнализирует владельцу ПК о том, что на компьютере есть проблема с обработкой сценариев или скриптов. Если вы столкнулись с такой проблемой, то сегодняшний материал вам поможет – мы разобрали в деталях, что делать с ошибкой и как её устранить.

Что делать с ошибкой сценария на странице

Содержание

  • 1 Базовые сведения
  • 2 Как исправить ошибку в браузере
  • 3 Что делать, если ошибка сценариев в Windows
  • 4 Исправление ошибки сценария скрипта run.vbs

Базовые сведения

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

  • Ошибка в браузере;
  • Ошибка в Windows;
  • Ошибка в языке сценариев run.vbs.

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

Как исправить ошибку в браузере

Чаще всего проблема возникает в браузере от компании Microsoft – Internet Explorer или Edge, в этом случае вылетает подобная ошибка:

Ошибка на этой странице произошла ошибка сценария в браузере IE

Но произойти она может и в других браузерах. Существует две причины возникновения проблемы:

  • На стороне сайта;
  • На вашей стороне.

Решение простое:

  • Почистить кеш и куки в браузере;
  • Переустановить браузер;
  • Обновить браузер.

Вы можете попробовать каждый вариант по очереди. Как правило, если проблема на вашей стороне, то очистка кеша и куки помогает.

Если же ничего из перечисленного не помогло, и браузер выдает ошибку «на этой странице произошла ошибка сценария», то, скорее всего, проблема кроется в самом сайте. Если вы не являетесь администратором сайта, то вы не сможете решить эту проблема кардинально, но у вас есть вариант, как хотя бы просмотреть данные сайта.

Для этого вам нужно заблокировать показ сообщения о проблеме. В этом случае не гарантируется полная работоспособность самого сайта, и браузер откроет его в ровно том виде, как он смог его обработать.

Чтобы открыть страницу, вам нужно в «Свойствах браузера» перейти в раздел дополнительно:

Свойства браузера при ошибке «на этой странице произошла ошибка сценария»

На этой странице вам нужно поставить галочку у пункта «Отключить отладку сценариев». А также убрать галочку напротив уведомлений об ошибках.

После чего примените параметры. Это позволит вам избавиться от отображения ошибок, но не решит проблем на стороне сайта. Поэтому, возможны трудности в работе самого сервиса. Например, будут открываться не все страницы, или информация будет прогружаться не до конца.

Ваша собственная ОС также может стать причиной возникновения проблем. Эта проблема абсолютно никак не связана с браузером, и как правило, проявляется сразу после запуска операционной системы. Многие пользователи решают эту проблему простым закрытием окна с сообщением – но такой вариант не решает проблему, лишь маскирует её. Если вы хотите решить проблему, то используйте нашу следующую инструкцию.

  1. Первом делом зайдите в панель Win + R
  2. Введите regedit и нажмите клавишу Enter;
  3. Откроется новое окно, где вам нужно кликнуть правой кнопкой мыши по разделу HKEY_LOCAL_MACHINE, далее необходимо выбрать свойство «Разрешения…»;
     Что делать с ошибкой сценария на странице
  4. На этом окне необходимо выбрать в поле «Группы или пользователи» параметр «Все» и чуть ниже установить галочку напротив пункта «Полный доступ»;
  5. После того, как вы проделали всё, что описано выше, переходите в раздел «Дополнительно»;
    Что делать с ошибкой сценария на странице
  6. В этом разделе нужно опять установить галочку напротив раздела «Все» и кликнуть по кнопке «Изменить»;
  7. Далее необходимо подтвердить «Полный доступ»;
  8. После того, как вы проделали всё, перезагрузите систему, чтобы новые настройки вступили в силу.
  9. После того, как ОС перезагрузится, вам необходимо снова зайти в панель, для этого используйте сочетание Win + R. Теперь необходимо задать команду cmd и нажать Enter.
  10. Далее добавьте строчку regsvr32 c:windowssystem32msxml.dll.

Этот вариант скроет сообщение об ошибке. Если вы хотите решить проблему, то вам нужно проделать следующее:

  • Запуститься в безопасном режиме;
  • Откатиться к версии ОС, когда не было проблемы.

Как альтернативный вариант, вы можете использовать чистый ISO образ ОС чтобы восстановить изначальный вариант системы. В этом случае вам даже не нужна собственная точка восстановления, достаточно скачать оригинальный образ Windows 10.

Исправление ошибки сценария скрипта run.vbs

Если в ошибке система вам чётко указывает на файл run.vbs, то необходимо действовать по следующему сценарию. Важно, что ошибка в сценарии данного скрипта часто блокирует работу рабочего стола или вносит в его работу коррективы и изменения, поэтому, не во всех случаях есть возможность взаимодействовать с диспетчером задач.

Как правило, ошибка run.vbs с описанием «на этой странице произошла ошибка сценария» возникает после воздействия вирусов на систему. Если ваш ПК работает, то используйте инструкцию ниже, если ОС даже не запускается, то у вас есть лишь один путь – восстановить работу ОС через ISO образ или откатиться к рабочему состоянию.

Если ОС работает, вам нужно проделать следующее:

  1. Зайти в диспетчер задач, для этого зажать Alt + Ctrl + Del;
  2. В диспетчере задач перейти на вкладку «Файл»;
  3. В этом окне выбрать «Новая задача»;

Картинка

  1. Далее используйте команду explorer.exe

В этом случае вы сможете запустить работу рабочего стола и проверить свой ПК на вирусы, после чего восстановить систему.

Альтернативный вариант, восстановить работу ОС через восстановление реестра, для этого вам необходимо проделать следующее:

  1. Открыть панель «Выполнить» с помощью Win + R;
  2. Набрать regedit и нажать клавишку Энтер;
  3. Далее проследовать по пути HKEY_LOCAL_MACHINE-> SOFTWARE-> Microsoft-> Windows NT-> CurrentVersion-> Winlogon – этот путь универсален для всех версий операционной системы;
  4. В открывшемся окне выбрать пункт «Shell» — независимо от того, как настроено выделение на вашем ПК, выбор пункта в этом меню осуществляется только по двойному клику;
  5. Далее в строчке «Значение» вам необходимо указать параметр – explorer.exe;
    Что делать с ошибкой сценария на странице
  6. Всё тоже самое, что показано выше на скриншоте, нужно повторить ещё раз в новом параметре Userinit.

Всё это позволит вам убрать ошибку сценариев на Windows 10 и восстановит работоспособность рабочего стола. Если какой-то момент остался не ясным, мы рекомендуем изучить видео инструкцию, где процесс показан и объяснен шаг за шагом:

Если и видео вам не помогло, то не забывайте, что вы всегда можете использовать наши комментарии, как способ узнать ответ на свой вопрос – пишите свои вопросы обязательно со скриншотами, и мы постараемся вам помочь.

(2 голос (ов), в среднем: 5,00 из5)

Загрузка…

Понравилась статья? Поделить с друзьями:
  • Ошибка считывания карты тройка
  • Ошибка соленоида переключения
  • Ошибка счетчика е48
  • Ошибка сценария при включении компьютера
  • Ошибка соленоида линейного давления