Удаление надстройки VBA-Excel.

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

Что бы удалить строку при помощи vba в Excel, достаточно воспользоваться методом .Delete . Следующий макрос удалит строку с номером 6.

Sub DeleteRow()
Rows(6).Delete
End Sub

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

Наша задача – удалить строки, в которых продажи равны 1’000’000 шт.
Первое, что обычно приходит на ум в таких случаях – написать цикл, который пробежится по всем строкам нашей таблицы и в случае если найдет значение 1’000’000 во второй ячейке строки – удаляет эту строку.
Что же, давайте попробуем:

Sub DeleteRows()
For i = 2 To 13
If Cells(i, 2) = 1000000 Then
Rows(i).Delete
End If
Next i
End Sub

Запускаем макрос, и что мы видим? А видим мы вот что:

Строки июн.14 и ноя.14 удалены, в то время как июл.14 остался в таблице. Почему? В голову сразу лезут мысли о том, что 1 млн. на самом деле не 1млн, а нечто другое, и что эта ячейка просто не проходит вот эту проверку: If Cells(i, 2) = 1000000 . Но нет, дело тут совершенно в другом.

Давайте попытаемся выполнить этот макрос в уме.
i=2 , условие If Cells(2, 2) = 1000000 не выполнено, поехали дальше
i=3 , условие If Cells(3, 2) = 1000000 не выполнено, поехали дальше
i=4 , условие If Cells(4, 2) = 1000000 не выполнено, поехали дальше
i=5 , условие If Cells(5, 2) = 1000000 не выполнено, поехали дальше
i=6 , условие If Cells(6, 2) = 1000000 не выполнено, поехали дальше
i=7 , условие If Cells(7, 2) = 1000000 выполнено, удаляем эту строку.
А дальше следите за руками, строка июн.14 исчезает, строка июл.14 перемещается вверх и теперь оказывается под номером 7 , а мы заканчиваем эту итерацию и переходим к i=8 . А под номером восемь у нас уже идет авг.14 , который попал на эту позицию после того, как была удалена строкаиюн.14 . Таким образом, июл.14 даже не проходил проверку на равенство миллиону:

Об этом надо помнить абсолютно всегда, когда вы пишете подобные циклы. И даже не циклы – например, какие строки удалит следующий макрос?

Sub del()
Rows(1).Delete
Rows(2).Delete
Rows(3).Delete
End Sub

Думаете строки 1, 2 и 3? Нет, строки 1,3 и 5.

Как обойти проблему

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

Давайте внесем изменения в наш первоначальный макрос и снова его запустим:

Sub DeleteRowsCorrect()
For i = 13 To 2 Step -1
If Cells(i, 2) = 1000000 Then
Rows(i).Delete
End If
Next i
End Sub

Теперь результат нас полностью удовлетворяет.

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

Оставьте Ваше предложение на .

Инструкция по отключению надстройки

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

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

Полное удаление программы

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

  1. Откройте диалоговое окно Надстройки повторив действия указанные выше.
  2. Выделите надстройку VBA-Excel и нажмите Обзор.
  3. Откроется местоположение файла. Удалите его и программа удалится полностью.

Установка

Обращаем Ваше внимание, что функционал, описанный в данной статье, ОТСУТСТВУЕТ в Excel .

Чтобы его добавить, необходимо установить . Данная программа содержит более сотни функций , которые сделают работу с Excel в разы эффективней. С ней рутинные задачи будут занимать считанные секунды. Программой уже воспользовались 33 517 чел. , попробуйте и Вы!

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

Удаление надстроек Excel xla/xlam условно можно разбить на три этапа:

1) Отключение надстройки;

2) удаление файла надстройки;

3) изменение состояния надстройки с последующим удалением ее из списка.

Рассмотрим каждый этап подробнее на примере Excel 2007, в других версиях Excel надстройки удаляются аналогично.

Отключение активной надстройки

Перед тем как удалить надстройку Excel xla/xlam, необходимо сделать ее неактивной, то есть отключить. Чтобы узнать состояние надстройки (активная она или нет) необходимо нажать кнопку «Office» и перейти в «Параметры Excel». Появляется окно «Параметры Excel», где в разделе «Надстройки» виден список всех установленных надстроек, сгруппированных на активные и неактивные. Активные – это те надстройки, которые на данный момент подключены, соответственно неактивные – это те, которые в данный момент отключены. Здесь также можно узнать место расположения файла удаляемой надстройки (оно нам вскоре понадобится). Обратите внимание на скриншот ниже, на нем видны активные надстройки, одну из них с названием test.xla мы и будем удалять.


Удаление файла надстройки

Итак, из приведенного выше окна мы узнали текущее состояние надстройки, которую собираемся удалить. Надстройка test.xla активная, поэтому переходим в поле «Управление», выбираем из списка «Надстройки Excel» и нажимаем кнопку «Перейти». Снимаем флажок перед названием надстройки.



Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Игра петушиные бои правила Игра петушиные бои правила Мод для майнкрафт 1.7 10 смотреть рецепты. Рецепты крафтинга предметов в Minecraft. Оружие в Minecraft Мод для майнкрафт 1.7 10 смотреть рецепты. Рецепты крафтинга предметов в Minecraft. Оружие в Minecraft Шиллинг и стерлинг - происхождение слов Шиллинг и стерлинг - происхождение слов