Как увеличить десятичные значения в ячейке в Excel VBA - PullRequest
0 голосов
/ 01 июля 2019

Я изучаю кодирование 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 голосов
/ 01 июля 2019

Циклы не нужны.

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 предлагал в комментарии выше.

Изменить *От 1012 * до counter = 1.2

Измените Do While counter < 10 на Do While counter < 10 * 0.1 + 1.2

И измените counter = counter + 1 на counter = counter + 0.1

0 голосов
/ 01 июля 2019

Вы можете использовать этот код:

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
0 голосов
/ 01 июля 2019

Вы можете сделать это так. 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...