此代码需要超过10秒才能完成。有没有更快的方法来做到这一点?我可以缩短代码执行时间吗?
如果连续特定小区由“H”字则隐藏整个行,这里也有一个给定的背景颜色解释单元格的内容,它的指数代码为19。
Option Explicit
Sub TailoredInputs()
Dim ws As Worksheet
Dim i, j, l As Integer
Set ws = Sheets("Inputs")
Application.ScreenUpdating = False
Range("A7:A200").EntireRow.Hidden = False
With ws
.Select
j = 10
Do While j <= 149
If .Cells(j, "J").Value = "H" Then
For l = 4 To 9
If .Cells(j, l).Interior.ColorIndex = 19 Then
.Cells(j, l).ClearContents
Else: End If
Next l
.Cells(j, "J").EntireRow.Hidden = True
Else: End If
If .Cells(j, "K").Value = "H" Then
For l = 4 To 9
If .Cells(j, l).Interior.ColorIndex = 19 Then
.Cells(j, l).ClearContents
Else: End If
Next l
.Cells(j, "J").EntireRow.Hidden = True
Else: End If
j = j + 1
Loop
Range("Spendinginput").Select
End With
Application.ScreenUpdating = True
End Sub
正如我说我是一个初学者,所以我选择了与去循环,而不是Range.Find方法。因为我不知道如何返回行号,所以我可以使用它来隐藏整个行和清除内容,如果“H”被发现。 – newguy
@RohanK,添加了代码以显示它的工作方式,并向您展示如何从'range.find()'返回的范围之外获得该行,以便正确地影响特定的行。 – paxdiablo