以0.25步进值循环

时间:2018-10-22 11:41:01

标签: excel vba

我有一个数据依赖于基于一个单元格的值。我需要通过将该值更改为0.25步进值来收集数据。

我试图在VBA中单独进行此操作,但这非常繁琐。

Sub total_usage2()
    Sheets("1_GENERAL").Activate
    Range("A2").Value = 49
    Sheets("4.MINUTES").Activate
    Range("BL371").Activate
    Range("BL371").Copy
    Sheets("9").Activate
    Range("A2").PasteSpecial xlPasteValues
    Sheets("1_GENERAL").Activate
    Range("A2").Value = 49.25
    Sheets("4.MINUTES").Activate
    Range("BL371").Activate
    Range("BL371").Copy
    Sheets("9").Activate
    Range("A3").PasteSpecial xlPasteValues
    Sheets("1_GENERAL").Activate
    Range("A2").Value = 49.5
    Sheets("4.MINUTES").Activate
    Range("BL371").Activate
    Range("BL371").Copy
    Sheets("9").Activate
    Range("A4").PasteSpecial xlPasteValues
End sub

我为此准备了循环

Sub calculation()
    Dim i As Integer
    For i = 0 To 90 Step 0.25
    Sheets("1_GENERAL").Range("a2") = CStr(i)
    Sheets("9").Range("A" + CStr(i + ((i - 1) * 1))).Rows(3).PasteSpecial xlPasteValues
    Next i
End Sub

我想每隔0.25步更改一次值(请参见图片),并将其粘贴到另一工作表的每一列中。

enter image description here

1 个答案:

答案 0 :(得分:2)

如果以0.25为步长,则不能使用整数-只能使用一个。现在您可以执行循环:

Sub foo()
    Dim i As Single
    With Worksheets("9")
        .UsedRange.Clear
        .Range("A1").Value = "Input"
        .Range("B1").Value = "Output"
        For i = 0 To 90 Step 0.25
            Worksheets("1_GENERAL").Range("A2").Value = i
            With .Cells(Rows.Count, 1).End(xlUp)
                .Offset(1, 0).Value = i
                .Offset(1, 1).Value = Worksheets("4.MINUTES").Range("BL371").Value
            End With
        Next i
    End With
End Sub