我有一个数据依赖于基于一个单元格的值。我需要通过将该值更改为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步更改一次值(请参见图片),并将其粘贴到另一工作表的每一列中。
答案 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