2013-05-28 2 views
0

я написал ниже код, чтобы проверить две ячейки в строке, если оба имеют 0 в них, то он должен скрыть эту строкуполучение «определяется приложением или объект, определенный» ошибка

For Each rr In Range("I17:I28") 'rr is defined as range 
     If rr = 0 Then 

      If ActiveCell.Offset(0, -3).Range(rr).Value = 0 Then ' getting error in this line 
      ActiveCell.EntireRow.Select 
      Selection.EntireRow.Hidden = True 
      Range("B16").Select 

      Else 
      ActiveCell.EntireRow.Select 
      Selection.EntireRow.Hidden = False 
      Range("B16").Select 
      End If 

     End If 
Next 

, но я получаю «приложение -определенной или объект, определенный»ошибка я попробовал диапазон замены (р-р) просто р-р, но все же он дает„объект dosen't поддерживает это свойство или метод“ошибка

пожалуйста, помогите на это ....

+0

Вы ссылаетесь на два разных объекта диапазона в проблемной строке, ActiveCell и rr. Используйте одно или другое значение ActiveCell.Offset (..). Значение или rr.Offset (0, -3) .Value (не уверен, что вы собираетесь). – chuff

+0

@chuff я попробовал rr.offset (0, -3), но он скрывает столбец 18, но он скрывает столбец 17 (cus имеет 0 в I и F, а не строку 18) –

+0

@murugan_kotheesan [Эта ссылка может быть полезна ] (http://stackoverflow.com/questions/16001937/ms-excel-for-each-loop-insert-rows/16002805#16002805) – Santosh

ответ

0

Просто проверьте приведенный ниже код, хорошо ли он работает для вас ... Он скрывает первую строку, если есть два последовательных 0. если есть три последовательных нуля, они скрывают первые два и так далее ...

Sub CheckZeros() 
Dim rng As Range 
Set rng = ActiveSheet.Range("I17:I28") 
For i = 1 To rng.Count 
    If rng.Cells(i, 1) = rng.Cells(i + 1, 1) And rng.Cells(i, 1) = 0 Then 
    rng.Cells(i, "I").EntireRow.Hidden = True 
    End If 
Next 
End Sub 
+0

Это скрывает только первую строку, которая удовлетворяет условию, а не остальным в этом диапазоне –

+0

Если вы хотите скрыть все последовательные 0. добавьте еще одну строку «rng.Cells (i + 1,« I »). EntireRow.Hidden = True" – Ramana

Смежные вопросы