gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 20:12:22 27 4
gpt4 key购买 nike

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

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

  • 这个例程中的第 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 中稍微复杂一些。有任何想法吗?

    最佳答案

    我对你的代码有点困惑,我不知道你为什么要粘贴在 Results!C2 中,如果你希望它在你的压力值旁边。这是将其放在您的 StartNumber 变量单元格旁边的代码,我假设这些单元格位于 Main Simulation 表上。

    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 只是从'Main Simulation'!D21 更新,那么我建议做任何结果计算Results!C34 直接在您的代码中执行的操作。但是,如果没有更多关于单元格中的内容以及工作表如何工作的详细信息,就很难为您提供有关如何使其工作的确切答案。

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

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com