私はこれを適切に行っていないことを知っていますが、私は VBA の初心者であり、ブック内の複数のシートで値の sumif を実行し、それらの sumif の合計を返そうとしています。
これは私が試した方法ですが、#NAMEを取得しますか? エラーが発生し、ここから先がわかりません。
Public Function Lookup(x As Long) As Long
Dim sh As Worksheet, wb As Workbook, arr() As Variant
Set wb = Workbooks.Open("Purchased.xlsm")
For Each sh In wb
arr() = Application.SumIf(Range("A1:A10000"), x, Range("B1:B10000"))
Next
Lookup = Application.WorksheetFunction.Sum(arr())
End Function
これを機能させることができず、#VALUE! が返されました。エラーですが、これは私が必要とするものに近いと思います:
Public Function AddItUp(x As Long) As Long
Dim sh As Worksheet, wb As Workbook, RunningSum() As Variant
Dim i As Long, j As Long
Set wb = Workbooks.Open("Week1Input.xlsm")
j = wb.Worksheets.Count
ReDim RunningSum(1 To j)
For i = 1 To j
RunningSum(i) = Application.SumIf(wb.sh(i).Range("A1:A10"), x, wb.sh(i).Range("B1:B10"))
Next i
AddItUp = Application.WorksheetFunction.Sum(RunningSum)
End Function