Этот код занимает более 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