我执行了以下循环操作,使每个单元格下移,直到达到与另一列中最后一个使用过的单元格相同的单元格。然而,它远远超出了最后使用的细胞。它工作正常,但运行时需要更长的时间,特别是当它有30,000行时要通过!有人对此有任何想法吗?
Dim i As Long
lMaxRows = Cells(Rows.Count, "K").End(xlUp).Row
For i = 1 To lMaxRows
Range("D" & lMaxRows + 1).Select
ActiveCell.FormulaR1C1 = "0:00:00"
lMaxRows = Cells(Rows.Count, "E").End(xlUp).Row
Range("E" & lMaxRows + 1).Select
ActiveCell.FormulaR1C1 = "1"
Next i
答案 0 :(得分:5)
定义父工作表,避免一次选择并填充所有单元格。
With Worksheets("Sheet1")
With .Range(.Cells(1, "K"), .Cells(.Rows.Count, "K").End(xlUp))
.Offset(0, -7) = "0:00:00"
.Offset(0, -6) = 1
End With
End With
答案 1 :(得分:0)
我认为这是由于lMaxRows
用法和循环。
这有用吗?
Sub t2()
Dim lMaxRows&, xMaxRows&
Dim i As Long
lMaxRows = Cells(Rows.Count, "K").End(xlUp).Row
i = 1
Do While i <= lMaxRows
Range("D" & lMaxRows + 1).FormulaR1C1 = "0:00:00"
xMaxRows = Cells(Rows.Count, "E").End(xlUp).Row
Range("E" & xMaxRows + 1).FormulaR1C1 = "1"
i = i + 1
Loop
End Sub
如果没有一些样本数据,很难知道你想做什么/期望输出什么。