2013-11-11 3 views
0

У меня есть этот Sub, который вычисляет информацию из CSV-файла.получение значения из другого подпрограммы в VB

Private Sub getTotalAmt(intDuration As integer, strProgrameType As String) 

Я еще Sub:

Private Sub getMembershipDiscount(ByRef dtDOB As Date, dblTotalAmt as Double) 

, который вычисляет возраст клиента и в зависимости от их возраста, дает им скидку. Чтобы сделать это, я должен получить общую сумму от вышеуказанного Sub (getTotalAmt) к этой процедуре Sub.

Мой вопрос, как получить общую сумму от этой подпрограммы?

ответ

2

Пожалуйста speicify возвращаемых типов и преобразовать Sub к функции Таким образом, вы всегда можете вернуть что-то из ваших функций, если указан типа возвращаемого значения в ваш метод getTotalAmt(int Duration As Integer, StrProgrameType As String), что будет выглядеть следующим образом Function getTotalAmt(int Duration As Integer, StrProgrameType As String) As double

, то из другого метода вы можете вызвать его и использовать перенастроенное значение для дальнейших вычислений или что угодно.

т.е.

Private Sub sub1() 

//You use the Sub2's value in here like 
msgbox(sub2) 

End Sub 

Private Function sub2() As String //You can specifiy any data type you are returning, I specified String just for demnostrate 

//Set the value of Sub2 in here 
sub2 = "Yourvalue"; 

End Function 
3

по определению подпрограммы не имеют выхода.
Вместо этого вы хотите написать функцию. В вашем случае, изменить код, который вы должны что-то вроде этого:

private function getTotalAmt(intDuration As integer, strProgrameType As String) as double 
    'do the same maths you do in the sub, and store your answer in a variable called "whatever" 
    getTotalAmt = whatever 
end function 

затем использовать функцию:

sub IUseFunctions() 
    dim myDiscount as double 
    myDiscount = getTOtalAtm(1,"s") 
end sub 

В этом примере случае, я решил для вас, что значение скидки хранится в двойном номере. Вы можете изменить это, как хотите, в верхней строке функции getTotalAmt.

+0

Вы избили меня до этого :) Чтобы добавить к вашему ответу, вы также можете вернуть определенный тип данных, если программа требует его. Пример: Функции NameOfFunction (ByVal num1 как целое число, ByVal пит2 как целое) тусклых х как целое число = num1 + num2 возврата х конца функция –

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