Excel VBA,用于更改变量并粘贴其结果的 for 循环

标签 excel vba user-input

我有一个包含一系列计算的电子表格。我有一个结果单元格,它取决于所有计算。我写了一个宏:

  1. 询问用户两个数字之间的范围
  2. 生成两个数字之间间距为 0.5 的范围
  3. 对于每个数字,将此数字添加到指定单元格并等待处理
  4. 将结果单元格复制到摘要单元格
  5. 对范围内的所有数字重复

这个例程中的第四点是我唯一的问题。我似乎无法将每个循环的结果粘贴到不同的单元格中。例如,对于 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 中则稍微复杂一些。有任何想法吗?

最佳答案

我对你的代码有点困惑,如果你想将它粘贴到压力值旁边,我不知道你为什么要粘贴 Results!C2 。下面的代码将其放在 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

如果 Results!C34 仅从“主模拟”!D21 进行更新,那么我建议直接在代码中执行 Results!C34 正在执行的任何结果计算。但是,如果没有有关单元格中的内容以及工作表如何工作的更多详细信息,很难为您提供有关如何使其工作的准确答案。

关于Excel VBA,用于更改变量并粘贴其结果的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35431511/

相关文章:

来自单元格的 VBA Web 查询

excel - 简单查询复杂答案 - 如何为简单公式选择 RowA6-Row(最后一个非空白)

vba - MsgBox 不够大,无法容纳文本

user-interface - 3 路输入的用户界面元素 : yes, 不,不关心

python - 使用 pandas 过滤 excel 工作表中的条件格式

xml - 向 Excel 单元格添加格式设置

Excel:如果 COLUMN 等于 VALUE,则删除多行

Excel公式创建两个日期之间的年份范围

reflection - Kotlin使用反射调用构造函数

php - 使 Web 表单输入在各种情况下都安全的正确方法是什么?