VBA循环,直到两列或更多列中的一行为空

我正在尝试创build一个循环,在第一列自动input今天的date,第二列被填满,并在填满所有空单元格后停止。

到目前为止的代码:

Sub DateLine() Do ' Finding first empty row in column A Range("A1").End(xlDown).Offset(1, 0).Select ' Enter todays date in empty row in Column A ActiveCell.FormulaR1C1 = "=TODAY()" Loop Until Range("A1").End(xlDown) = Range("B1").End(xlDown) End End Sub 

目前,它正在填补预定的行,但不停止。 有任何想法吗?

在列B上测量您的select。对xlCellTypeBlanks使用Range.SpecialCells方法可快速find相应行中的所有空白单元格。

 with worksheets("Sheet1") '<~~surely you know which worksheet you are on with .range(.cells(1, 2), .cells(rows.count, 2).end(xlup)) with .offset(0, -1) on error resume next .specialcells(xlcelltypeblanks).formula = "=today()" 'alternate permanent date '.specialcells(xlcelltypeblanks) = date on error goto 0 end with end with end with 

如果我正确地理解了你,这会为你解决:

 Sub DateLine() Do ' Finding first empty row in column A Range("A1").End(xlDown).Offset(1, 0).Select ' Enter todays date in empty row in Column A ActiveCell.FormulaR1C1 = "=TODAY()" Loop Until Range("A1").End(xlDown).Row = Range("B1").End(xlDown).Row End End Sub