Non VBA Way
вы можете поместить формулу =IF(LEN(TRIM(C2))=0,"",POPULATETHISCELL)
в ячейки A
и B
, где вы можете заменить POPULATETHISCELL на то, что вы есть пытаюсь туда добраться. Например, заполнение сегодняшней даты.
VBA Way
- Работа с
Objects
. Избегайте использования ActiveWorkbook/Activesheet/Selection
et c, как показано ЗДЕСЬ - Избегайте использования
UsedRange
. Найдите последний ряд, как показано ЗДЕСЬ , а затем l oop через него. - Вместо очистки диапазонов дважды, вы можете очистить его в одном go, как показано ниже
Это то, что вы пытаетесь?
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim lastrow As Long
Dim i As Long
Set ws = ThisWorkbook.Sheets("Sold")
With ws
If Application.WorksheetFunction.CountA(.Cells) <> 0 Then
lastrow = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
For i = 2 To lastrow
If Len(Trim(.Range("C" & i).Value)) = 0 Then _
.Range("A" & i & ":B" & i).ClearContents
Next i
End If
End With
End Sub