![我可以将工作表用作 Excel 中的函数吗?](https://linux22.com/image/1423801/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%B0%86%E5%B7%A5%E4%BD%9C%E8%A1%A8%E7%94%A8%E4%BD%9C%20Excel%20%E4%B8%AD%E7%9A%84%E5%87%BD%E6%95%B0%E5%90%97%EF%BC%9F.png)
我设置了一个工作表,这样我就可以输入一个值,做一些数学运算来得到一堆值,重复几次数学运算,然后把所有的值加起来并返回一个输出值。它非常复杂,以至于每次测试新输入时复制和粘贴所有单元格是不切实际的。当我必须测试 2 或 3 个不同的参数时,这没问题,但现在我需要测试 50 个不同的输入并创建一个图表,我需要一些帮助。
有什么方法可以创建一个包含 50 个输入值的表格,以某种方式将它们输入到工作表中,并获取输出值,以便我可以制作图表?使用 vb-script 的选项可以工作。
编辑:我已包含大部分计算,其中 A2 中的值是输入值,D10 中的值是输出值。请参阅下图
答案1
我过去的做法是使用 vba 将所有值输入到适当的单元格中,让 excel 进行计算,然后使用类似下面的宏复制结果。我在下面放了一张测试表的图片。显然,您的测试表会更详细,您可能会将表格放在与计算不同的工作表上。G5 中的公式是 sum(G2:G4)。存储结果的 D 列中没有公式。
Sub get_data()
Dim dataA As Double, dataB As Double, dataC As Double, dataOutput As Double
Dim lastRow As Long, currentRow As Long
With ActiveSheet
lastRow = .Range("A" & .Rows.Count).End(xlUp).Row
For currentRow = 2 To lastRow
'Read in data from table
dataA = .Range("A" & currentRow).Value
dataB = .Range("B" & currentRow).Value
dataC = .Range("C" & currentRow).Value
'Put data into worksheet
.Range("G2").Value = dataA
.Range("G3").Value = dataB
.Range("G4").Value = dataC
'You could also avoid the variables by putting it directly into the cell without variable
'.Range("G2").Value = .Range("A" & currentRow).Value
'etc
Calculate
'store results in variable
dataOutput = .Range("G5").Value
'Put results back in table
.Range("D" & currentRow).Value = dataOutput
Next
End With
End Sub
答案2
您可以使用 Excel 中的数据表来实现此目的:
- 您在行或列中列出您的输入(因此它们代表表格轴)。
- 然后转到“假设分析”>“数据表”。
- 向导会提示您输入输入和输出字段。然后,它会将每个输入的输出值粘贴到每个输入旁边。