一个arr(1 to 15, 1 to a)数组(a-15种材料某种材料数目的最大数), 一个brr=arr数组,内设价格,与arr一一对应 另一个index(1 to 15)辅助数组,每种材料的材料数目(因为每种材料的数目不一定一样),写代码可减少计算量,也可不要而直接循环到ubound(arr,2)。 ----------- textbox控件数组(1 to 15), 计算反正很简单,不过材料名搞起来有点复杂,可在excel先做个表格罗列一下,这样写代码的时候不容易错。
'写个测试代码,自己理解一下 Option Explicit Private Sub Form_Activate() Dim arr(1 To 14, 1 To 2), i, s For i = 1 To UBound(arr) arr(i, 1) = i & "-" & i + 1 arr(i, 2) = i Debug.Print arr(i, 1); arr(i, 2), Next Print getcash(arr, "1-3") Print getcash(arr, "1-5") End Sub Function getcash(arr, s) Dim i, j s = Split(s, "-") For i = 1 To UBound(arr, 1) If Split(arr(i, 1), "-")(0) = s(0) Then For j = i To UBound(arr, 1) getcash = getcash + arr(j, 2) If Split(arr(j, 1), "-")(1) = s(1) Then i = UBound(arr, 1) Exit For End If Next End If Next End Function