我在下面有这个代码。如何将单元格值设置为=循环该值的是什么?
Sub Test2()
' Select cell A2, *first line of data*.
Range("A2").Select
' Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
' Insert your code here.
' Step down 1 row from present location.
ActiveCell.Offset(1, 0).Select
Loop
End Sub
答案 0 :(得分:6)
我的回答最好看起来像评论,但是它太长而无法放入评论中(并且无法正确格式化)。
我建议您查看有关优化VBA的Chip Pearson page,尤其是在VBA中的范围内循环。
当你遍历范围时,你应该使用本例中描述的for each
语句:
Dim WS as Worksheet
For Each WS In Worksheets
MsgBox WS.Name
Next WS
Dim i as Integer
For i = 1 To Worksheets.Count
MsgBox Worksheets(i).Name
Next i
您的代码似乎试图找到最后一个空单元格。您可以使用
轻松完成With ActiveWorkbook.Worksheets("Sheet1")
.Cells(.Rows.Count,1).End(xlUp)
End With
您可以在ozgrid上找到更多提示(即使他们不使用rows.count
)
如果您尝试Select
循环中的每个单元格,您的代码将非常慢。
您最好使用VBA的对象模型 例如,如果您只想复制单元格的值:
不要
Range("A1").Select
Selection.Copy
Range("A2").Select
Selection.Paste
<强>不要强>
Range("A2").Value = Range("A1").Value