Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2016, 22:23   #1
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию Корректировка макроса на удаление любого столбца по условию в указанной ячейке VBA

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

Sub kmd()
For Each c In Range("c2:c2")
If c = пусто Then c.EntireColumn.Delete
Next
End Sub
Alexsandrr вне форума Ответить с цитированием
Старый 08.02.2016, 22:47   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub kmd()
  If IsEmpty([c2]) Then Columns(1 + Int(Rnd * Columns.Count)).Delete
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.02.2016, 23:05   #3
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию

Куда в коде указать необходимый столбец для удаления?
Alexsandrr вне форума Ответить с цитированием
Старый 08.02.2016, 23:16   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а удалять нужно не
Цитата:
любой другой столбец
, а выбранный пользователем?
тогда так:
Код:
Sub kmd()
  Dim rg As Range
  If IsEmpty([c2]) Then Set rg = Application.InputBox("Укажите ячейку или столбец", "Удалить столбец", Type:=8)
  If Not rg Is Nothing Then rg.Cells(1).EntireColumn.Delete
End Sub
предыдущий макрос строго по техзаданию удалял любой другой столбец (столбец С тоже попадал в категорию "любой другой столбец" и мог быть удален)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 08.02.2016 в 23:19.
IgorGO вне форума Ответить с цитированием
Старый 09.02.2016, 08:27   #5
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию

Большое спасибо за помощь, но нужно уточнение.
В предложенном Вами макросе необходимо в открывшемся окне указывать столбец для удаления.
А нужен макрос такого порядка: при условии, что в ячейке с5 пусто - сразу удаляем столбец (k:k)
Alexsandrr вне форума Ответить с цитированием
Старый 09.02.2016, 09:08   #6
Alexsandrr
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 78
По умолчанию

Напряг мозг посильнее и вот макрос
Sub kmd()
For Each c In Range("c2:c2")
If c = пусто Then
Columns ("k:k").Delete
End If
Next
End Sub

Вопрос закрыт!
Alexsandrr вне форума Ответить с цитированием
Старый 09.02.2016, 09:53   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Чем аргументовано использование конструкции
Код:
For Each c In Range("c2:c2")
?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 09.02.2016, 10:14   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

запись полностью соответствует синтаксису языка, на нее не ругается интерпретатор и более того - ОНА РАБОТАЕТ!!! - чем не аргумент?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос "Скрытие/удаление/добавление столбца по условию" Kapkom Microsoft Office Excel 13 15.06.2016 13:20
Корректировка макроса Excel Alexsandrr Microsoft Office Excel 1 17.10.2013 19:58
Исправить ошибку в программе на С++ (удаление строки и столбца из матрицы по условию) Ultran Помощь студентам 0 06.01.2013 21:47
Удаление строки столбца в массива vba excel sabrishat Помощь студентам 2 13.04.2012 20:29
Удаление столбца по условию... Klim Bassenger Microsoft Office Excel 2 05.05.2009 10:06