その行のセルがゼロ(または空)の場合、各行をチェックするコードがあります。行がそのルールに適用される場合、行は非表示になります。そうでなければ、それは目に見えるままです。コードは完璧に動作より速い行を非表示にするVBA
、しかし、それは非常に非常に遅いです(私はそれを実行するたびに完了するのに約40秒かかります)。..
誰もが私のコードが遅い理由を参照して(または持っていることができれば、私は思っていましたあなたは(それぞれの行を非表示にしたときに、私は
Sub hide()
' Macro hides all rows with position "zero" or "blank"
Dim wb As Workbook
Dim ws As Worksheet
Dim c As Range
Dim targetRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet 1")
Set targetRange = ws.Range("I10:N800")
targetRange.EntireRow.Hidden = False
For Each c In targetRange.Rows
If (WorksheetFunction.CountIf(c, "<>0") - WorksheetFunction.CountIf(c, "") = 0) And (WorksheetFunction.CountA(c) - WorksheetFunction.Count(c) = 0) Then
c.EntireRow.Hidden = True
End If
Next c
End Sub
コード:
は、以下のコードを試してみてください。投稿のアドバイスについてはこちらをご覧ください:https://codereview.meta.stackexchange.com/questions/2436/how-to-get-the-best-value-out-of-code-review-asking-questions – QHarr
も読んでください[Stack Overflowユーザーのためのコードレビューガイド](https://codereview.meta.stackexchange.com/questions/5777/a-guide-to-code-review-for-stack-overflow-users) – danieltakeshi