Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/VBA. Удаление столбца если в 8 строке значение 0 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA. Удаление столбца если в 8 строке значение 0 (Формулы/Formulas)
VBA. Удаление столбца если в 8 строке значение 0
florenus Дата: Четверг, 30.10.2014, 13:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Есть макрос который в столбце после 8 строки ищет значение 0 и при положительном результате удаляет столбец. Помогите его изменить таким образом, чтобы он искал только в 8 строке.

[vba]
Код
Sub УдалениеНулевыхСтолбцов()
Dim i&: Application.ScreenUpdating = 0
With ActiveSheet.UsedRange
For i = .Columns.Count To 1 Step -1
If Not .Columns(i).Find(what:="0", After:=Cells(8, i), LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext) Is Nothing Then .Columns(i).Delete
Next i
End With: Application.ScreenUpdating = 1
End Sub
[/vba]
К сообщению приложен файл: 3860856.xlsm (17.7 Kb)


Сообщение отредактировал florenus - Четверг, 30.10.2014, 13:55
 
Ответить
СообщениеЕсть макрос который в столбце после 8 строки ищет значение 0 и при положительном результате удаляет столбец. Помогите его изменить таким образом, чтобы он искал только в 8 строке.

[vba]
Код
Sub УдалениеНулевыхСтолбцов()
Dim i&: Application.ScreenUpdating = 0
With ActiveSheet.UsedRange
For i = .Columns.Count To 1 Step -1
If Not .Columns(i).Find(what:="0", After:=Cells(8, i), LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext) Is Nothing Then .Columns(i).Delete
Next i
End With: Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - florenus
Дата добавления - 30.10.2014 в 13:37
Rioran Дата: Четверг, 30.10.2014, 13:48 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
florenus, здравствуйте.

Как Вам такой вариант:

[vba]
Код
Sub Rio_Brings_Down_The_Zero()

Dim i As Long

Application.ScreenUpdating = 0

With ActiveSheet.UsedRange
      For i = .Columns.Count To 1 Step -1
          If Cells(8, i).Value <> "" And Cells(8, i).Value = 0 Then .Columns(i).Delete
      Next i
End With

Application.ScreenUpdating = 1

End Sub
[/vba]
Чтобы Ваш код выглядел как и мой - можно зайти в редактирование сообщения, выделить только VBA-код и нажать на кнопку # справа на панели кнопок редактирования. Этого требуют правила форума.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 30.10.2014, 13:49
 
Ответить
Сообщениеflorenus, здравствуйте.

Как Вам такой вариант:

[vba]
Код
Sub Rio_Brings_Down_The_Zero()

Dim i As Long

Application.ScreenUpdating = 0

With ActiveSheet.UsedRange
      For i = .Columns.Count To 1 Step -1
          If Cells(8, i).Value <> "" And Cells(8, i).Value = 0 Then .Columns(i).Delete
      Next i
End With

Application.ScreenUpdating = 1

End Sub
[/vba]
Чтобы Ваш код выглядел как и мой - можно зайти в редактирование сообщения, выделить только VBA-код и нажать на кнопку # справа на панели кнопок редактирования. Этого требуют правила форума.

Автор - Rioran
Дата добавления - 30.10.2014 в 13:48
florenus Дата: Четверг, 30.10.2014, 14:11 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Если в объединенной нулевой ячейке, 2 или 3 столбца то удаляется только один.
 
Ответить
СообщениеЕсли в объединенной нулевой ячейке, 2 или 3 столбца то удаляется только один.

Автор - florenus
Дата добавления - 30.10.2014 в 14:11
florenus Дата: Четверг, 30.10.2014, 14:23 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Rioran, спасибо Вам. От меня +
 
Ответить
СообщениеRioran, спасибо Вам. От меня +

Автор - florenus
Дата добавления - 30.10.2014 в 14:23
Rioran Дата: Четверг, 30.10.2014, 14:30 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
florenus, мои извинения, не учёл объединение ячеек, исправляюсь =) Попробуйте.

[vba]
Код
Sub Rio_Brings_Down_The_Zero_2()

Dim i As Long

Application.ScreenUpdating = 0

With ActiveSheet.UsedRange
      For i = .Columns.Count To 1 Step -1
          If Cells(8, i).MergeArea.Cells(1, 1).Value <> "" And Cells(8, i).MergeArea.Cells(1, 1).Value = 0 Then .Columns(i).Delete
      Next i
End With

Application.ScreenUpdating = 1

End Sub
[/vba]
За плюс спасибо, приятно =)

[p.s.]Поддерживаю пост AlesST ниже по ветке форума - в следующий раз такой вопрос надо выкладывать в ветке VBA.
Кстати, в правилах форума в разделе 5 есть восемнадцать запрещающих пунктов. Запрет на помощь там отсутствует.[/p.s.]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Четверг, 30.10.2014, 16:14
 
Ответить
Сообщениеflorenus, мои извинения, не учёл объединение ячеек, исправляюсь =) Попробуйте.

[vba]
Код
Sub Rio_Brings_Down_The_Zero_2()

Dim i As Long

Application.ScreenUpdating = 0

With ActiveSheet.UsedRange
      For i = .Columns.Count To 1 Step -1
          If Cells(8, i).MergeArea.Cells(1, 1).Value <> "" And Cells(8, i).MergeArea.Cells(1, 1).Value = 0 Then .Columns(i).Delete
      Next i
End With

Application.ScreenUpdating = 1

End Sub
[/vba]
За плюс спасибо, приятно =)

[p.s.]Поддерживаю пост AlesST ниже по ветке форума - в следующий раз такой вопрос надо выкладывать в ветке VBA.
Кстати, в правилах форума в разделе 5 есть восемнадцать запрещающих пунктов. Запрет на помощь там отсутствует.[/p.s.]

Автор - Rioran
Дата добавления - 30.10.2014 в 14:30
florenus Дата: Четверг, 30.10.2014, 14:47 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Rioran, здорово!!! Все работает!!! Спасибо за помощь!
 
Ответить
СообщениеRioran, здорово!!! Все работает!!! Спасибо за помощь!

Автор - florenus
Дата добавления - 30.10.2014 в 14:47
Alex_ST Дата: Четверг, 30.10.2014, 15:51 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
А то, что топик, ОСОЗНАННО названный VBA. Удаление столбца если в 8 строке значение 0, размещается в ветке Вопросы по Excel, а не в Вопросы по VBA - это никого не смущает? Rioran, Вы-то хоть не нарушайте правила! deal



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА то, что топик, ОСОЗНАННО названный VBA. Удаление столбца если в 8 строке значение 0, размещается в ветке Вопросы по Excel, а не в Вопросы по VBA - это никого не смущает? Rioran, Вы-то хоть не нарушайте правила! deal

Автор - Alex_ST
Дата добавления - 30.10.2014 в 15:51
florenus Дата: Пятница, 31.10.2014, 09:16 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2003
Извините.
 
Ответить
СообщениеИзвините.

Автор - florenus
Дата добавления - 31.10.2014 в 09:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » VBA. Удаление столбца если в 8 строке значение 0 (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!