如何在Excel VBA中增加单元格中的十进制值

时间:2019-07-01 17:57:13

标签: excel vba

我正在学习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以获得十个值

3 个答案:

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