2016-05-11 2 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

Также, какова точка этой функции? Он не возвращает значение или ничего не изменяет, поэтому он не имеет значения для вашего кода ... –

Смежные вопросы