dig*_*kie 0 excel vba excel-vba excel-2010
我在下面有这个代码.如何将单元格值设置为=循环该值的是什么?
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
Run Code Online (Sandbox Code Playgroud)
我的答案看起来更像是一个评论,但它太长而无法放入评论(并且无法正确格式化).
我建议你看一下关于优化VBA的Chip Pearson页面,特别是在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
Run Code Online (Sandbox Code Playgroud)
您的代码似乎试图找到最后一个空单元格.你可以轻松地完成它
With ActiveWorkbook.Worksheets("Sheet1")
.Cells(.Rows.Count,1).End(xlUp)
End With
Run Code Online (Sandbox Code Playgroud)
您可以在ozgrid上找到更多提示(即使它们不使用rows.count)
如果您尝试循环中的每个单元格,您的代码将非常慢Select.
您最好使用VBA 的对象模型.
例如,如果您只想复制单元格的值:
不要这样做
Range("A1").Select
Selection.Copy
Range("A2").Select
Selection.Paste
Run Code Online (Sandbox Code Playgroud)
做
Range("A2").Value = Range("A1").Value
Run Code Online (Sandbox Code Playgroud)