Чтобы действительно искать через не-пустые ячейки необходимо использовать SpecialCells метод Range (см Range.SpecialCells Method (Excel)
Эта процедура процесса только непустые ячейки
Как некоторые из ресурсов, используемых в процедуре, могут быть новыми для пользователя, поэтому я предлагаю посетить Select Case Statement, тем не менее, дайте мне знать о любом вопросе, который может возникнуть в отношении кода.
Sub Search_NonBlank_Cells()
Dim Rng As Range
Dim rCll As Range
Rem Set Range
Set Rng = ActiveSheet.Range(kRng)
Rem Ensure blank intended cells are actually blank
Rng.Value = Rng.Value2
Rem Loop Through Non-Blank Cells Only
For Each rCll In Rng.SpecialCells(xlCellTypeConstants, _
xlErrors + xlLogical + xlNumbers + xlTextValues)
Rem Validate if cell value starts with "center"
If Left(rCll.Value2, 6) = "center" Then
Rem Validate if remaining cell value is between 1 to 54
Select Case Application.Substitute(rCll.Value2, "center", "")
Case 1 To 54
Rem Process Cell Found
rCll.Interior.Color = RGB(255, 255, 0)
End Select: End If: Next
End Sub
Это та же процедура, что и некоторые строки, которые помогут вам отлаживать и понимать процесс, а также создает журнал в непосредственном окне.
Sub Search_NonBlank_Cells_Debug()
Dim Rng As Range
Dim rCll As Range
: SendKeys "^g^a{DEL}": Stop
: Debug.Print vbLf; Now
: Debug.Print "Address"; Tab(11); "Cll.Value"; Tab(31); "Status"
Rem Set Range
Set Rng = ActiveSheet.Range(kRng)
Rem Ensure blank intended cells are actually blank
'i.e. Cells with formulas results as "" are not blank cell this makes then blank cells
Rng.Value = Rng.Value2
Rem Loop Through Non-Blank Cells Only
For Each rCll In Rng.SpecialCells(xlCellTypeConstants, _
xlErrors + xlLogical + xlNumbers + xlTextValues)
: Debug.Print rCll.Address; Tab(11); rCll.Value2;
Rem Validate if cell value starts with "center"
If Left(rCll.Value2, 6) = "center" Then
Rem Validate if remaining cell value is between 1 to 54
Select Case Application.Substitute(rCll.Value2, "center", "")
Case 1 To 54
Rem Process Cell Found
: Debug.Print Tab(31); "Processed"
rCll.Interior.Color = RGB(255, 255, 0)
Case Else
: Debug.Print Tab(31); "Skipped"
End Select
Else
: Debug.Print Tab(31); "Skipped"
End If: Next
End Sub
'Для каждого cel11 в rngsh1', а затем' If Len (Cel1.Value)> 0 затем' –
Спасибо ... дайте мне попробовать это – Sabha
'Если не IsEmpty (cel1.Value) затем': P –