私は、下にある2つのコードを持っています。もう1つは、そこに含まれる値の合計に基づいて行が表示され、ゼロに等しくなります。しかし、このコードはセクション間のスペーサーなので、私が望ましくない空白行も隠します。アドバイスをいただければ幸いです。また、既存のコードを改善するための推奨事項がある場合は、それも高く評価されます。コンテンツの合計= 0で空白をスキップすると、Excelの行を非表示にするにはどうすればよいですか?
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
If Application.Sum(Range(Rng(R, 3), Rng(R, Rng.Columns.Count))) = 0# Then
Rng.Rows(R).Hidden = True
End If
Next R
End Sub
Sub UnHideRows()
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
If Application.Sum(Range(Rng(R, 3), Rng(R, Rng.Columns.Count))) = 0# Then
Rng.Rows(R).Hidden = False
End If
Next R
End Sub
コードの速度が問題である場合は、行を非表示にするためにオートフィルタ(手動またはVBA)よりもTrueまたはFalseを返す「作業列」を使用する方が速くなります。 – brettdj