Записи с меткой "VBA управление кодами"

Элементы ActiveX перестали работать или ведут себя непредсказуемо

В Microsoft Office после определенных обновлений может появиться проблема: Перестают работать все элементы ActiveX (кнопки CommandButton, списки(Lists и ComboBox) и пр.) во всех файлах, а так же невозможно вставить любой элемент ActiveX на лист(при попытке вставки появляется сообщение Вставка объекта неосуществима), а при работе с таким файлом может появится ошибка Can't exit design mode because control cannot be created). Подробнее про вставку таких элементов на лист можно прочитать в статье: КАК СОЗДАТЬ КНОПКУ ДЛЯ ВЫЗОВА МАКРОСА НА ЛИСТЕ? Там я описывал пример вставки кнопки через ActiveX, но сути...

Новая статья: что значит ошибка Too Many Line Continuations

Добавил на сайт новую статью, которая поможет разобраться с ошибкой Too Many Line Continuations при написании кодов вручную или записи их макрорекордером. Ошибка сама по себе хоть и не нова, но встречается весьма редко и в некоторых ситуациях может подпортить жизнь основательно. В статье я описываю один из таких случаев - когда ошибка появляется при записи действий макрорекордером, что само по себе не несет радости, т.к. макрорекордер-то вроде должен учитывать уж такие-то вещи. Но нет. И т.к. эта ошибка наиболее часто появляется именно при записи...

Code execution has been interrupted - что за баг?

Иногда при выполнении вполне рабочего кода может возникнуть ошибка "Code execution has been interrupted": чаще всего она появляется в циклах (это Do ... Loop, For each, For ... Next). Но может проявится и на отдельных участках кода совершенно независимо от того, что делает тот или иной кусок кода. Сама по себе ошибка не является таковой - при нажатии Continue код продолжает работать и может даже дойти до конца уже без ошибок. Но что примечательно - появившись в каком-то коде однажды, эта ошибка начинает преследовать вас и при этом воспроизводится только на том ПК, на котором...

Как защитить проект VBA паролем

Для тех кто уже освоился более-менее в программировании на Visual Basic for Application рано или поздно непременно встает вопрос: как защитить свой код от изменений или даже от просмотра? Как правило это делается в файлах, которые в дальнейшем "гуляют по рукам". Т.е. автор создал и потом файл отсылается или другим пользователям, или клиентам, поставщикам и т.п. Чтобы у тех, кто будет в дальнейшем работать с этим файлом, не было возможности подсмотреть проект и тем более что-то в нем изменить. В каких-то случаях цель такой защиты это защита "от дурака": чтобы по...

Как убрать заголовок у UserForm VBA

Иногда при разработке интерфейсов программы с помощью форм пользователя(UserForm) бывает необходимо запретить закрытие формы крестиком. Причин много: например на форме много элементов выбора и пользователь не должен просто закрывать форму крестиком, не выбрав что-то конкретное. Или может форма должна висеть постоянно на листе до тех пор, пока программа не сделает все необходимые действия и т.д. Варианта два Вариант 1 Можно просто запретить закрывать форму. Это значит, что после нажатия на крестик ничего не произойдет. Для этого надо перейти в...

Отобразить процесс выполнения

Часто при создании кодов в VBA используется обращение к ячейкам, листам, книгам и т.д. и их обработка в циклах. Пара примеров подобных циклов: Просмотреть все файлы в папке - цикл по файлам в папке - Do While sFiles "" и For Each objFile In objFolder.Files Массовая замена слов - цикл по ячейкам(массивам) - For lr = 1 To UBound(avArr, 1) Не работают/пропали меню - цикл по всем панелям - For Each cmdBar In Application.CommandBars Если операция в цикле выполняется за пару секунд - это вполне приемлемо и отражать графически подобные действия нет нужды. Но, если циклы "крутятся" по полчаса - вполне неплохо иметь...

Как ускорить и оптимизировать код VBA

Рано или поздно у пишущих на Visual Basic for Applications возникает проблема - код хоть и облегчает жизнь и делает все автоматически, но очень долго. В этой статье я решил собрать несколько простых рекомендаций, которые помогут ускорить работу кода VBA, при этом в некоторых случаях весьма внушительно - в десятки, а то и больше, раз. Основной упор в статье сделан на начинающих, поэтому в начале статьи приводятся самые простые методы оптимизации. Более "глубокие" решения по оптимизации кода приведены в конце статьи, т.к. для применения данных решений...

Кто вызвал функцию или процедуру?

Предположим вы написали два макроса - один скрывает строки, другой отображает. Visual Basic 'скрываем строки Sub HideRows() Range("A3:A14").EntireRow.Hidden = True End Sub 'показываем строки Sub UnhideRows() Range("A3:A14").EntireRow.Hidden = False End Sub 12345678 'скрываем строкиSub HideRows()    Range("A3:A14").EntireRow.Hidden = TrueEnd Sub'показываем строкиSub UnhideRows()    Range("A3:A14").EntireRow.Hidden = FalseEnd Sub И, конечно - создали кнопки для вызова этих двух кодов (подробнее про создание кнопок - Как создать кнопку для вызова макроса на листе). Но потом захотелось...

Select и Activate - зачем нужны и нужны ли?

Все начинающие изучать VBA сталкиваются с тем, что записанные через макрорекордер коды пестрят методами Select и Activate. Если не знакомы с работой макрорекордера - Что такое макрос и где его искать? Это значительно ухудшает читабельность кода и, как ни странно - быстродействие. Но есть недостатки и куда более критичные. Если код выполняется достаточно долго и он постоянно что-то выделяет - пользователь может заскучать и забыться и начнет тыкать мышкой по листам и ячейкам, выделяя не то, что выделил ранее код. Что повлечет ошибки логики. Т.е. код может...

Отлов ошибок и отладка кода VBA

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

Страница 1 из 3123

Тренинги

Заказать
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2017 Excel для всех  Войти
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
captcha
Генерация пароля