我们团队的另一位成员构建了精心设计的电子表格,该电子表格可以计算出我们需要的特定值。但是,当前设置如下:
我的任务是生成一系列假设。如果A1 = 4,A2 = 4.7,A3 = 0.2,那么D1是什么?
在记录输出时,对于A1,A2和A3的10k +其他有效组合重复该步骤。
我的本能只是将其视为编程语言中的函数,然后使其变为接受输入并吐出输出的函数……但是我不确定如何做到这一点。如何做到这一点的任何指导?同事运行的功能非常复杂,因此要像在SUM之类中所做的那样,要在“拖放”范围内跨多行或多列复制该逻辑并不容易。
答案 0 :(得分:1)
多亏了迈克尔·墨菲(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