Исправить ошибку выхода за пределы диапазона в Visual Basic для приложений (VBA)
Ошибка VBA Subscript out of range возникает из-за того, что объект, к которому мы хотим получить доступ, не существует. Это тип ошибки в кодировании VBA и «Ошибка времени выполнения 9». Для написания эффективного кода важно понимать концепции, и еще более важно понимать ошибку вашего кода VBA для эффективной отладки кода.
Если вы и ваша ошибка кодирования не знаете, что это за ошибка, когда вас нет.
Врач не может давать лекарства своему пациенту, не зная о болезни. В то время как врач и пациент знают, что есть заболевание (ошибка), важно понимать заболевание (ошибку) как предоставление ей лекарства. Если вы полностью понимаете ошибку, гораздо проще найти решение.
Другая причина может заключаться в том, что на вашем компьютере нет стандартного принтера. Есть несколько решений, чтобы решить эту проблему Ошибка 9 во время выполнениятак что попробуйте все в правильном порядке.
[expert_bq id=»1570″]Хотя основная роль ThisWorkbook заключается в хранении процедуры события, вы также можете использовать ее для ссылки на книгу, в которой выполняется код. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Одна из проблем, с которыми я часто сталкиваюсь при использовании порядковых номеров с рабочими книгами, заключается в том, что вы никогда не знаете, какая из них первая книга, а какая вторая и так далее. Конечно, вам нужно будет запустить код, как показано выше, или что-то подобное, чтобы просмотреть открытые книги и узнать их порядковый номер.Использование объекта книги в Excel VBA (открытие, закрытие, сохранение, установка)
- Подключите принтер к компьютеру, подключите шнур питания и включите его.
- Перейдите в «Пуск»> «Панель управления»> «Принтеры и факсы».
- Щелкните «Добавить принтер» и следуйте инструкциям на экране, чтобы добавить принтер по умолчанию.
Защита книги Excel от копирования и печати
Отключение в рабочей книге команды Сохранить
Можно сделать так, чтобы рабочую книгу нельзя было сохранить, и она открывалась в режиме «только для чтения». Для этого в вашей книге выполните команду Сохранить как и в окне Сохранение документа кликните на стрелку вниз на кнопке Сервис (рис. 1). Выберите опцию Общие параметры.
Рис. 1. Доступ к меню Общие параметры при сохранении книги Excel
Скачать заметку в формате Word или pdf, примеры в формате Excel (файл содержит макросы)
В открывшемся окне Общие параметры (рис. 2) задайте Пароль для изменения и кликните на Рекомендовать доступ только для чтения. Кликните Ok, повторите ввод пароля, и сохраните книгу. Если появится окно Книга с таким именем уже существует, заменить ее? Кликните Да.
Рис. 2. Задание пароля для изменения книги в окне Общие параметры
Отключение в рабочей книге команды Сохранить как
В предыдущем разделе вы научились не давать возможность пользователям сохранить книгу поверх вашей, но хитрые пользователи могут сохранить копию книги в другом месте. 🙂 Чтобы отключить эту возможность, потребуется код VBA.
Событие Before Save, которое вы будете использовать в следующем коде, было впервые создано в Excel 97. Как предполагает его имя, это событие происходит перед сохранением рабочей книги, позволяя вам поймать действия пользователя еще перед этим фактом, выдать предупреждение и запретить Excel сохранять файл.
Перед тем как пытаться выполнить следующий трюк, обязательно сначала сохраните рабочую книгу в формате с поддержкой макросов *.xlsm. Если вы напишете этот код до того, как сохраните книгу, то не сможете более сохранять изменения.
Рис. 3. Открыто окно частного модуля для объекта ЭтаКнига
Введите следующий код (рис. 4) и нажмите сочетание клавиш Alt+Q, чтобы вернуться в Excel.
Рис. 4. Код в частном модуле ЭтаКнига (чтобы увеличить изображение, кликните на картинке правой кнопкой мыши и выберите опцию Открыть картинку в новой вкладке)
Проверьте, что получилось. Выберите команду Файл –> Сохранить как, вы увидите сообщение о том, что эту книгу запрещено сохранять под другим именем (рис. 5).
Рис. 5. Сообщение о запрете на сохранение книги под другим именем
Очень хитрые пользователи могут открыть редактор VBA, удалить код, и сохранить книгу в другом месте или с другим именем.
Итак, вы запретили сохранение книги, копирование книги в другое место, но пользователи всё еще могут распечатать данные. При помощи события Excel Before Print можно отследить и предупредить действия пользователя. Как и ранее, откройте окно частного модуля для объекта ЭтаКнига и введите код:
Закончив ввод кода, нажмите сочетание клавиш Alt+Q, чтобы вернуться в Excel. Теперь каждый раз, когда пользователи будут пытаться напечатать эту рабочую книгу, ничего не случится. Строка сообщения MsgBox не обязательна, но всегда полезно включать ее, хотя бы для того, чтобы проинформировать пользователя.
Если вы хотите, чтобы пользователи не могли печатать только определенные листы в книге, вместо предыдущего кода используйте следующий:
Обратите внимание, что печать будет остановлена только для листов Sheet1 и Sheet2. Конечно, имена листов вашей рабочей книги могут быть любыми. Чтобы добавить их в список кода, запишите их в кавычках, разделяя запятыми. Если вы хотите запретить печать только одного листа, укажите только одно название в кавычках, не ставя запятую.
У хитрых пользователей всё еще останется возможность сделать скриншот экрана с вашей засекреченной книгой.
[1] По материалам книги Д.Холи, Р.Холи. Excel 2007. Трюки, стр. 28–32 [2] Если вкладка Разработчик отсутствует, пройдите по меню Файл –> Параметры Excel –> Настроить ленту. Поставьте галочку напротив вкладки Разработчик. [expert_bq id=»1570″]Этот пример показывает, как можно использовать текстовое и бинарное сравнение для поиска соответствий, в которых регистр символов важен и нет. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Я компьютерный энтузиаст и практикующий ИТ-специалист. У меня за плечами многолетний опыт работы в области компьютерного программирования, устранения неисправностей и ремонта оборудования. Я специализируюсь на веб-разработке и дизайне баз данных. У меня также есть сертификат CCNA для проектирования сетей и устранения неполадок.Проверка Существования Папки в Vba Excel Исходные данные | 📝Справочник по Excel
Добрый день. Ваш код мне очень подходит. Вопрос, как изменить диапазон ячеек в коде, при условии, что я хочу перенести в другую книгу в определенный лист несколько разных ячеек с одного листа НАПРИМЕР диапазоны B7:С24 и H7:I24 . Подскажите как правильно это нужно указать. Спасибо.
Второй вид защиты — Project is Unviewable
Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.
Где хранятся резервные копии в Excel
Когда я работаю со сложными данными и панелью мониторинга в книгах Excel, я часто создаю разные версии своих книг. Это полезно на случай, если с моей текущей книгой что-то пойдет не так. По крайней мере, у меня была бы его копия, сохраненная под другим именем (и я потеряю только ту работу, которую проделал после создания копии).