2016-10-13 3 views
0

Я использую следующий код, чтобы скрыть строки на основе значения ячейки:Показать строки на основе значения ячейки - Excel VBA

Sub HideN() 

Dim RowCnt As Long, uRng As Range 

BeginRow = 8 
EndRow = 232 
ChkCol = 6 

    For RowCnt = BeginRow To EndRow 
     If Cells(RowCnt, ChkCol).Value = 0 Then 
     If uRng Is Nothing Then 
      Set uRng = Cells(RowCnt, ChkCol) 
     Else 
      Set uRng = Union(uRng, Cells(RowCnt, ChkCol)) 
     End If 

     End If 
    Next RowCnt 

If Not uRng Is Nothing Then uRng.EntireRow.Hidden = True 

End Sub 

Что я должен изменить, если я хочу, чтобы отобразить строки, где значение ячейки равно 1?

Заранее благодарен!

MD

ответ

0

Вы можете просто добавить дополнительный If заявление, нет ?:

Sub HideN() 

Dim RowCnt As Long, uRng As Range 

BeginRow = 8 
EndRow = 232 
chkcol = 6 

For RowCnt = BeginRow To EndRow 
    If Cells(RowCnt, chkcol).Value = 0 Then 
     If uRng Is Nothing Then 
      Set uRng = Cells(RowCnt, chkcol) 
     Else 
      Set uRng = Union(uRng, Cells(RowCnt, chkcol)) 
     End If 
    End If 
    If Cells(RowCnt, chkcol).Value = 1 Then ' This is the new line to add 
     Rows(RowCnt).EntireRow.Hidden = False 
    End If 
Next RowCnt 

If Not uRng Is Nothing Then uRng.EntireRow.Hidden = True 

End Sub 
3

Это скроет все, что 0 и отобразите все остальные.

Sub HideN() 

Dim RowCnt As Long 
Dim BeginRow&, EndRow&, ChkCol& 

BeginRow = 8 
EndRow = 232 
ChkCol = 6 

    For RowCnt = BeginRow To EndRow 
     Rows(RowCnt).Hidden = Cells(RowCnt, ChkCol).Value = 0 
    Next RowCnt 



End Sub 

Конечно, вы можете сделать то же самое с фильтром.

+1

Отличный пример установки логическое значение в результате логического выражения - +1 – YowE3K