我有一个包含一系列计算的电子表格。我有一个依赖于所有计算的结果单元格。我写了一个宏:
这个例程中的第4个是我唯一的问题。我似乎无法从每个循环中获取结果以粘贴到不同的单元格中。例如,对于1到3之间的范围,我应该有5个值。我希望将这些值粘贴在压力值旁边。
Sub pressureOptimization()
'
' pressureOptimization Macro
'
p1 = InputBox("Give lower pressure limit")
p2 = InputBox("Give higher pressure limit")
Application.ScreenUpdating = False
For StartNumber = p1 To p2 Step 0.5
Range("D21").Select
ActiveCell.FormulaR1C1 = StartNumber
Range("C34").Select
Selection.Copy
Sheets("Result").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Main Simulation").Select
Next StartNumber
Application.ScreenUpdating = True
End Sub
这在python中相当简单,但在VBA中稍微复杂一些。有任何想法吗?
答案 0 :(得分:2)
我对你的代码感到有点困惑,我不知道你为什么要粘贴在结果中!如果你想要它压在你的压力值旁边那么。下面是将它放在StartNumber变量单元格旁边的代码,我假设它们位于主模拟工作表上。
Sub pressureOptimization()
'
' pressureOptimization Macro
'
Dim x As Integer
p1 = InputBox("Give lower pressure limit")
p2 = InputBox("Give higher pressure limit")
Application.ScreenUpdating = False
x = 0
For StartNumber = p1 To p2 Step 0.5
Sheets("Main Simulation").Cells(21 + x,4).Value = StartNumber
Sheets("Main Simulation").Cells(21 + x,5).Value = Sheets("Result").Range("C34").Value
x = x + 1
Next StartNumber
Application.ScreenUpdating = True
End Sub
如果结果!C34只是从主模拟'!D21更新,那么我建议做任何结果计算结果!C34直接在您的代码中进行。但是,如果没有关于单元格中的最新信息以及工作表如何工作的详细信息,很难给出关于如何使其工作的确切答案。