0

多くの製品を含むデータ チャートがあります。

製品の各タイプをフィルタリングし、そのタイプの合計数量とそのタイプ内の製品の数を計算したいと思います。最後に、その関数のをシート 2 の列に入れます。

これがコードです。数量列は列 U です。エラー 1004: Argument not optional が発生し、Set .... = FunctionR1C1 = .... 部分が強調表示されます。

Function T_Quantity()
    ActiveSheet.Range("U").Select
    Total = FunctionR1C1 = "=subtotal(9,C[0])"
End Function

Function T_Count(ref_column)
    ActiveSheet.Range("U").Select
    Total = FunctionR1C1 = "=subtotal(2,C[0])"
End Function

Sub Total_Count()
Dim my_array() As String
Dim iLoop As Integer
Dim iCount As Integer

iCount = 1
ReDim my_array(3)

my_array(0) = "=M1747B"
my_array(1) = "=M1747C"
my_array(2) = "=M1766B"

For iLoop = LBound(my_array) To UBound(my_array)

    ActiveSheet.Range("A:BB").Select

    Selection.AutoFilter Field:=15, Criteria1:=my_array
    Application.CutCopyMode = False

    'Calculate the quantity and no of lot, put in colum A,B in sheet 2'
    Set Worksheets("Sheet2").Cells(iCount, 1) = T_Quantity()
    Set Worksheets("Sheet2").Cells(iCount, 2) = T_Count()
    Application.CutCopyMode = False

    iCount = iCount + 1

Next iLoop

End Sub
4

1 に答える 1

0

これから始めて、それがあなたの望む結果に近づくかどうか見てみましょう:

Sub Total_Count()
Dim my_array() As String
Dim iLoop As Integer
Dim iCount As Integer

iCount = 1

ReDim my_array(3)
my_array(0) = "=M1747B"
my_array(1) = "=M1747C"
my_array(2) = "=M1766B"

For iLoop = LBound(my_array) To UBound(my_array)
    ActiveSheet.Range("A:BB").Select
    Selection.AutoFilter Field:=15, Criteria1:=my_array
    Application.CutCopyMode = False

    'Calculate the quantity and no of lot, put in colum A,B in sheet 2'
    Worksheets("Sheet2").Cells(iCount, 1).FormulaR1C1 = "=subtotal(9,C[0])"
    Worksheets("Sheet2").Cells(iCount, 2).FormulaR1C1 = "=subtotal(2,C[0])"
    Application.CutCopyMode = False
    iCount = iCount + 1

Next iLoop

End Sub

私が変更したこと:

  • Setワークシートでセル オブジェクトを操作する場合 は、キーワードを削除してください。Setオブジェクト変数を割り当てるために使用されます。
  • 呼び出す関数はセルのFormulaR1C1プロパティを設定するだけのように見えるので、これらの行にプロパティを追加し、.FormulaR1C1を使用する代わりにFunction、関数の R1C1 表記をこのサブルーチンに直接配置します。
于 2013-05-28T03:31:56.717 に答える