You can write functions in ASP similar to the way you write them in VisualBASIC. It is good programming practice to use functions to modularize your code and to better provide reuse. To declare a subroutine (a function that returns no value), you simply type:
<%@ LANGUAGE="VBSCRIPT" %>
<%
sub SubroutineName( Parameters to Pass In )
'Code for Sub...
end sub
%>
A function differs from a subroutine in the fact that it returns data. To declare a function, the syntax is similar:
<%@ LANGUAGE="VBSCRIPT" %>
<%
function FunctionName( Parameters to Pass In )
'Code for Function...
end function
%>
Let's look at the code for a function that takes an integer value and returns the square of that value. Also included is code to call the function.
<%@ LANGUAGE="VBSCRIPT" %>
<%
function Square(num)
Square = num * num end function
'Returns 25
Response.Write(Square(5))
'Should print "40 is less than 8^2"
if 40 < Square(8) then
Response.Write("40 is less than 8^2"

else
Response.Write("8^2 is less than 40"

end if
%>
If you do not understand an if statement, this tutorial should help!
To return a value from a function, you need to say the function's name = some value. That value is what is returned. In this case, we are returning num (the number passed in) times itself, or essentially num^2.
Important! Whenever you call a function and expect it to return a value, you must use parenthesis to pass in the parameter(s). For example, we used Square(8). If you are calling a subroutine, you cannot use parenthesis. If we want to pass in value(s), we need to put a space after the sub name and then each parameter separated by a comma. Observe the example below:
<%@ LANGUAGE="VBSCRIPT" %>
<%
sub PrintProfit(Revenue, Overhead, COGS, Admin)
'Create a variable to store our profit
Dim Profit
Profit = CDbl(Revenue - (Overhead + COGS + Admin))
Response.Write("$" & Profit)
end sub
'Call the sub with various values
'Will output $100.0
PrintProfit 150, 25, 10, 15
'Will output $0.5 (a bad year!!)
PrintProfit 200, 150, 45, 4.5
%>