В соответствии с предыдущим вопросом я попросил скрыть строки, содержащие нули, но пропустить строки, содержащие любой текст в любой одной или нескольких ячейках. Я получил отличную помощь, ранее пропуская пустые строки, и теперь надеялся на большую помощь. Я искал через Интернет на каждом форуме, который я могу найти, и не нашел ничего, что делает то, что мне нужно. На этом скрывается два кода и точная копия этого, но с скрытым значением false. Вот та, которая скрывается.Как скрыть строки Excel, если SUM содержимого = нуль и пропустить строки, содержащие любой текст?
Sub HideRows()
Dim R As Long
Dim Rng As Range
If Selection.Rows.Count > 1 Then
Set Rng = Selection
Else
Set Rng = ActiveSheet.UsedRange
End If
For R = 1 To Rng.Rows.Count
Set myRange = Range(Rng(R, 2), Rng(R, Rng.Columns.Count))
If Application.CountBlank(myRange) <> myRange.Cells.Count And IsNumeric(myRange(Row)) = False Then
If Application.Sum(myRange) = 0 Then
Rng.Rows(R).Hidden = True
End If
End If
Next R
End Sub
Кстати, я знаю, что IsNumeric(myRange(Row)) = False
действительно должен, вероятно, будет = True
, но по какой-то причине на одном из моих рабочих листов эта установка работает и если я изменяю Правда это в значительной степени ничего не делает.
Спасибо заранее, за любую помощь.
Вы не говорите, что не так с этим кодом. Скрывает ли строки, что не должно? Не скрывает ли он строки? Почему «Set myRange ...» начинается с столбца 2? –
Избегайте диапазонов циклов, где вы можете, это ужасные отходы времени выполнения кода. Вместо этого используйте простой рабочий столбец (вручную или с VBA), а затем «AutoFilter». Но в соответствии с комментарием Тони ваша точная проблема может быть более ясной. – brettdj
Прошу прощения, да, это прячет строки с текстом в них, которые являются заголовками для соответствующего раздела на листе. Я заметил, что это требует времени из-за циклов, но области, которые они применяют, не очень большие, и по сравнению с временем обработки формул в листах это ничего. Спасибо за советы. – ThaddeusTG