参数不是可选错误

我正在构build工作表,以便从需要根据位置和BU进行sorting和筛选的职位空缺列表中提取数据。 我需要代码来计算开口的数量,然后将这些信息传回给主要的子部分,用来创build额外的页面并循环这个子部分。 我一直在这个部分得到上述错误。 任何想法,我在做什么错?

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 

你的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