excel - 通过excel计算运行多个值
问题描述
我团队的另一位成员构建了精心制作的电子表格,可以计算出我们需要的某个值。但是,它目前是这样设置的:
- 更改单元格 A1、A2、A3 中的值。
- 发生了一堆相互依赖的计算,填充了数百个单元格。这一百个单元格,然后通过另一个公式合并回我需要的值。
- 有用的输出出现在单元格 D1 中
我的任务是生成一系列假设。如果 A1 = 4,A2 = 4.7,A3 = 0.2,D1 是多少?
在记录输出时,对 A1、A2 和 A3 的 10k+ 个其他有效组合重复此操作。
我的直觉只是将其视为编程语言中的函数,并使其成为接受输入并输出输出的函数……但是我不确定该怎么做。关于如何做到这一点的任何指导?同事运行的功能非常复杂,因此要在多行或多列之间复制该逻辑并不容易,就像我对 SUM 或其他东西所做的那样“拖放”。
解决方案
感谢 Michael Murphy 在评论中给了我一些搜索的东西。我把它留在这里,以便将来搜索的人可以找到它。
Sub test()
'
' test Macro
'
Dim a_array As Variant
Dim b_array As Variant
Dim c_array As Variant
Dim rw_cnt As Integer
rw_cnt = 2
' This selects each of the things to combo
a_array = ThisWorkbook.Sheets(2).Range("A2:A5")
b_array = ThisWorkbook.Sheets(2).Range("B2:B5")
c_array = ThisWorkbook.Sheets(2).Range("C2:C5")
For Each a_el In a_array
For Each b_el In b_array
For Each c_el In c_array
worth = compute_worth(a_el, b_el, c_el)
' This writes the output where we can track it
ThisWorkbook.Sheets(2).Cells(rw_cnt, 6) = a_el
ThisWorkbook.Sheets(2).Cells(rw_cnt, 7) = b_el
ThisWorkbook.Sheets(2).Cells(rw_cnt, 8) = c_el
ThisWorkbook.Sheets(2).Cells(rw_cnt, 9) = worth
rw_cnt = rw_cnt + 1
Next a_el
Next b_el
Next c_el
End Sub
Function compute_worth(a, b, c)
' This puts the value into the original sheet then extracts the output
ThisWorkbook.Sheets(1).Range("A1") = a
ThisWorkbook.Sheets(1).Range("A2") = b
ThisWorkbook.Sheets(1).Range("A3") = c
worth = ThisWorkbook.Sheets(1).Range("D1").Value
compute_worth = worth
End Function
推荐阅读
- javascript - 在按钮内居中对齐 ':after plus/minus sign'
- javascript - jQuery Switch Buttons,如果单击并且如果单击 == 1,您可以添加吗?
- python - 无法在 python 中找到文本的 xpath 元素
- javascript - React Native:如何将数据从屏幕传递到另一个?
- c++ - 无法在 Visual Studio 中打开文件
- java - 如果我们在 dockerfile 中使用 CMD,Docker 多阶段构建会失败
- spacy - spaCy 仅使用某些组件
- microsoft-teams - 如何让 OnPost 在 Microsoft Teams 中触发
- c++ - 关于标准容器内边界检查的问题
- tensorflow - 资源调用 close -flutter/tflite 错误失败