Есть макрос который в столбце после 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]
Есть макрос который в столбце после 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
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-код и нажать на кнопку # справа на панели кнопок редактирования. Этого требуют правила форума.
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
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Четверг, 30.10.2014, 13:49
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.]
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
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Четверг, 30.10.2014, 16:14
А то, что топик, ОСОЗНАННО названный VBA. Удаление столбца если в 8 строке значение 0, размещается в ветке Вопросы по Excel, а не в Вопросы по VBA - это никого не смущает? Rioran, Вы-то хоть не нарушайте правила!
А то, что топик, ОСОЗНАННО названный VBA. Удаление столбца если в 8 строке значение 0, размещается в ветке Вопросы по Excel, а не в Вопросы по VBA - это никого не смущает? Rioran, Вы-то хоть не нарушайте правила! Alex_ST