我正在学习VBA编码,在编写循环以增加单元格并将单元格内容增加十进制值时需要一些帮助。
搜索了互联网,发现了一个do while循环代码,该代码仅递增数字,而不能递增十进制值
Sub Doeg()
Dim counter As Double
counter = 1
Do While counter < 10
Cells(counter, "A"). Value = counter
counter = counter + 1
Loop
End Sub
上面的代码将单元格和每个单元格的值增加1
。
我想从1.2
开始,将每个单元格的值增加0.1
以获得十个值
答案 0 :(得分:0)
您可以这样做。在这种情况下,For-Next
似乎是更好的选择。
Sub Doeg()
Dim counter As Long
For counter = 1 To 10
Cells(counter, "A").Value = (counter - 1) * 0.1 + 1.2
Next counter
End Sub
答案 1 :(得分:0)
不需要循环。
Sub Doeg()
With ActiveSheet.Range("A1:A10")
.Formula = "=(ROW()-1)*.01+1.2"
.Value = .Value
End If
End Sub
如果您想循环,我会开始循环使用Variant Arrays而不是Ranges:
Sub Doeg
Dim otArr(1 to 10, 1 to 1) as Variant
Dim i as Long
For i = LBound(otArr,1) to UBound(otArr,1)
otArr(i,1) = (i - 1) * 0.1 + 1.2
Next i
ActiveSheet.Range("A1").Resize(UBound(otArr,1),UBound(otArr,2)).Value = otArr
End Sub
尽管在这种特定情况下,完成时间不会明显不同,但是如果您有1000甚至100,000,那么时间就会变得很明显。
但是对于SJR在上面的评论中提出的建议。
将counter = 1
更改为counter = 1.2
将Do While counter < 10
更改为Do While counter < 10 * 0.1 + 1.2
然后将counter = counter + 1
更改为counter = counter + 0.1
答案 2 :(得分:0)
您可以使用以下代码:
Sub Doeg()
Dim counter As Double
counter = 1.1
Do While counter < 10
Cells(counter, "A").Value = counter
counter = counter + 1.1
counter = counter - 0.1
Loop
End Sub