Excel 如何循环,直到两列都有一个空单元格?
下面的代码应该用=TODAY()公式填充AJ列,直到它碰到B列中的一个空单元格 当AJ中有空单元格(与B相比)时工作,但当AJ被填充时,它会保持循环,并在AJ中不必要的行中标记日期(B为空后) 我的想法是建立一个豁免,预先检查AJ和B的最后一行是否都是空的,如果这是真的,那么跳过循环,但无法从地面上得到一些东西Excel 如何循环,直到两列都有一个空单元格?,excel,vba,Excel,Vba,下面的代码应该用=TODAY()公式填充AJ列,直到它碰到B列中的一个空单元格 当AJ中有空单元格(与B相比)时工作,但当AJ被填充时,它会保持循环,并在AJ中不必要的行中标记日期(B为空后) 我的想法是建立一个豁免,预先检查AJ和B的最后一行是否都是空的,如果这是真的,那么跳过循环,但无法从地面上得到一些东西 Sub DateStomper() Do Application.ScreenUpdating = False Worksheets("xxx").Select
Sub DateStomper()
Do
Application.ScreenUpdating = False
Worksheets("xxx").Select
Range("AJ2").End(xlDown).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Loop Until Range("AJ2").End(xlDown).Offset(1, 0).Row = Range("B2").End(xlDown).Offset(1, 0).Row
End Sub
试试这个:
Sub DateStomper()
Dim i as Long
Application.ScreenUpdating = False
For i=2 to Range("B2").End(xlDown).Offset(1, 0).Row
Range("AJ" & i).Formula = "=TODAY()"
Next i
End Sub
只需检查公式是否应用在正确的位置。我不清楚你是否需要在AJ2->AJ最后一项+1中申请
希望它有助于另一种方法。您可以在不使用循环的情况下输入公式,如果B中没有其他内容,则使用xldown
是可疑的
Sub x()
Dim r As Long
On Error Resume Next 'in case there are no blanks
r = Range("B2", Range("B" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeBlanks)(1).Row
On Error GoTo 0
If r > 0 Then
Range("AJ2:AJ" & r - 1).Formula = "=TODAY()"
Else
MsgBox "No blanks in B"
End If
End Sub
试着想象你到达了B列上的最后一个单元格。你的代码在检查前添加了“TODAY()”
,因此当你检查两个单元格是否都为空时,AJ列将具有TODAY值。使用一个。。下一个循环更好。