2016-05-11 5 views
2

私は場所とBUで並べ替えてフィルタリングする必要がある求人のリストからデータを抽出するシートを作成しています。私は、開口部の数を数えるためのコードが必要です。そして、その情報をメインのサブに戻して、追加のページを作成し、サブをループします。このセグメントで上記のエラーが発生しています。私が間違ってやっていることについての考えは?引数ではありませんオプションのエラー

Sub Organize_Data() 

    Dim A As Integer 
    Dim B As Integer 
    Dim C As Integer 

    Worksheets.Add().Name = "Calculations" 
    Find_Unit 
    Find_Locations 
    Count_BU_Data 
    Count_Country_Data 
    Count_Raw_Data 
End Sub 

Function Count_BU_Data(A As Integer) 

    ActiveWorkbook.Worksheets("Calculations").Range("B3", Worksheets("Calculations").Range("B3").End(xlDown)).Rows.Count 
End Function 

答えて

3

あなたのUDF:

Function Count_BU_Data(A As Integer) 

あなたはオプション引数として指定されていない引数(A As Integer)をとります。この引数を指定せずに、他のルーチンから関数を呼び出します。

Sub Organize_Data() 

    Dim A As Integer 
    Dim B As Integer 
    Dim C As Integer 

    Worksheets.Add().Name = "Calculations" 
    Find_Unit 
    Find_Locations 
    Count_BU_Data '// <~~ No argument passed to function. 
    Count_Country_Data 
    Count_Raw_Data 
End Sub 

したがって、 '引数はオプションではありません'というエラーです。

その関数が実際に引数を使用して表示されませんので、あなたが機能ヘッダーから削除することができますいずれかを見て:

Function Count_BU_Data() As Long '// Note I've included a return value... 

それとも、オプションの引数

Function Count_BU_Data(Optional A As Integer) As Long 

あなたができることを確認しオプションの引数が指定されていない場合は、デフォルト値も指定してください。

Function Count_BU_Data(Optional A As Integer = 1) As Long 
+0

これを修正することをお勧めしますか? – TonyP

+0

上記の編集を参照してください^^ –

+1

また、この機能のポイントは何ですか?それはあなたのコードに価値がないので、値を返すか何かを変更しません... –

関連する問題