如何设置单元格值=什么是循环?

时间:2011-11-21 17:38:56

标签: excel excel-vba excel-2010 vba

我在下面有这个代码。如何将单元格值设置为=循环该值的是什么?

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

1 个答案:

答案 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