Добрый день.
Люди добрые, подскажите пожалуйста.
Есть макрос (во вложении) для подсчета суммы чисел в зависимости от определенных критериев.
Функция номер 1 для расчета суммы в зависимости от столбиков (толщина и ширина)
Функция номер 2 для расчета суммы чисел в зависимости от веса и ширины.
Я как чайник в этом деле пытался самостояетельно по аналогии переделать функцию номер 2 и создать из неё функцию номер 3 так скажем. Чтобы она считала мне сумму в зависимости от веса, ширины и ТОЛЩИНЫ.
Вот что получилось.
Но по итогу не хочет работать макрос в таком виде. Пишет сообщение Compile Error. Argument not Optional.
Люди добрые, подскажите пожалуйста.
Есть макрос (во вложении) для подсчета суммы чисел в зависимости от определенных критериев.
Функция номер 1 для расчета суммы в зависимости от столбиков (толщина и ширина)
Код |
---|
Function KList(i, P1_1a As Variant, P1_2a As Variant, P2_1a As Variant, P2_2a As Variant) As Double 'Функция обработки Толщина/Ширина KList = 0 Dim P1_1, P1_2, P2_1, P2_2 As Double P1_1 = CDbl(Val(P1_1a)) P1_2 = CDbl(Val(P1_2a)) P2_1 = CDbl(Val(P2_1a)) P2_2 = CDbl(Val(P2_2a)) With ActiveSheet AD = CDbl(Val(.Cells(i, "AD").Text)) AE = CDbl(Val(.Cells(i, "AE").Text)) If (AD >= P1_1) And (AD <= P1_2) Then If (AE >= P2_1) And (AE <= P2_2) Then 'KList = CDbl(Val(.Cells(i, "AG").Text)) KList = CDbl(.Cells(i, "AG").Value) End If End If End With End Function |
Функция номер 2 для расчета суммы чисел в зависимости от веса и ширины.
Код |
---|
Function TList(i, P1_1a As Variant, P1_2a As Variant, P2_1a As Variant, P2_2a As Variant) As Double 'Функция обработки "Вес рулона Макс"/Ширина TList = 0 Dim P1_1, P1_2, P2_1, P2_2 As Double P1_1 = CDbl(Val(P1_1a)) P1_2 = CDbl(Val(P1_2a)) P2_1 = CDbl(Val(P2_1a)) P2_2 = CDbl(Val(P2_2a)) With ActiveSheet CU = CDbl(Val(.Cells(i, "CU").Text)) AE = CDbl(Val(.Cells(i, "AE").Text)) If (CU >= P1_1) And (CU <= P1_2) Then If (AE >= P2_1) And (AE <= P2_2) Then TList = CDbl(.Cells(i, "AG").Value) End If End If End With End Function |
Я как чайник в этом деле пытался самостояетельно по аналогии переделать функцию номер 2 и создать из неё функцию номер 3 так скажем. Чтобы она считала мне сумму в зависимости от веса, ширины и ТОЛЩИНЫ.
Вот что получилось.
Код |
---|
[/CODE][CODE]Function TList(i, P1_1a As Variant, P1_2a As Variant, P2_1a As Variant, P2_2a As Variant, P3_1a As Variant, P3_2a As Variant) As Double 'Функция обработки "Вес рулона Макс"/Ширина/Толщина TList = 0 Dim P1_1, P1_2, P2_1, P2_2, P2_1, P2_2, P3_1, P3_2 As Double P1_1 = CDbl(Val(P1_1a)) P1_2 = CDbl(Val(P1_2a)) P2_1 = CDbl(Val(P2_1a)) P2_2 = CDbl(Val(P2_2a)) P3_1 = CDbl(Val(P3_1a)) P3_2 = CDbl(Val(P3_2a)) With ActiveSheet CU = CDbl(Val(.Cells(i, "CU").Text)) AE = CDbl(Val(.Cells(i, "AE").Text)) AD = CDbl(Val(.Cells(i, "AD").Text)) If (CU >= P1_1) And (CU <= P1_2) Then If (AE >= P2_1) And (AE <= P2_2) Then If (AD >= P3_1) And (AD <= P3_2) Then TList = CDbl(.Cells(i, "AG").Value) End If End If End If End With End Function |
Но по итогу не хочет работать макрос в таком виде. Пишет сообщение Compile Error. Argument not Optional.