Страницы: 1
RSS
Наверняка просто,но я не знаю.Функция в VBA
 
Вот что я уже нафантазировал:  
Function qwerty(a, b, x)  
ElseIf x < 2 Then  
qwerty = (a + b + x ^ 2) / b + x  
ElseIf x > 8 Then  
qwerty = Sqr(Abs(a * b + x))  
Else  
qwerty = a + Sin(bx)  
 
End If  
End Function  
все пашет.однако так же должно быть условие что при х=4 и х>12 функция не определяеться.И я не знаю как и куда это вписать...Поможете?
 
Ах да ну и после (a,b,x) там просто If а не ElseIf...  
Просто я до этого пытался сделать что-то в стиле"If x=4 and x>12 Then"однако после Then я не знаю что писать..
 
{quote}{login=OnlyForHouse}{date=11.11.2009 07:06}{thema=}{post}Ах да ну и после (a,b,x) там просто If а не ElseIf...  
Просто я до этого пытался сделать что-то в стиле"If x=4 and x>12 Then"однако после Then я не знаю что писать..{/post}{/quote}  
x=4 and x>12 так быть не может  
if условие исключения then    
qwerty=0  
else  
if условие then     else      
end if  
 
или  
Conditionally executes a group of statements, depending on the value of an expression.  
 
Syntax  
 
If condition Then [statements] [Else elsestatements]
 
Or, you can use the block form syntax:  
 
If condition Then  
[statements]
 
[ElseIf condition-n Then
[elseifstatements] ...
 
[Else
[elsestatements]]
 
End If  
 
The If...Then...Else statement syntax has these parts:  
 
Part Description    
condition Required. One or more of the following two types of expressions:    
 A numeric expression or string expression that evaluates to True or False. If condition is Null, condition is treated as False.    
 An expression of the form TypeOf objectname Is objecttype. The objectname is any object reference and objecttype is any valid object type. The expression is True if objectname is of the object type specified by objecttype; otherwise it is False.    
statements Optional in block form; required in single-line form that has no Else clause. One or more statements separated by colons; executed if condition is True.    
condition-n Optional. Same as condition.    
elseifstatements Optional. One or more statements executed if associated condition-n is True.    
elsestatements Optional. One or more statements executed if no previous condition or condition-n expression is True.    
 
 
 
Remarks  
 
You can use the single-line form (first syntax) for short, simple tests. However, the block form (second syntax) provides more structure and flexibility than the single-line form and is usually easier to read, maintain, and debug.  
 
Note   With the single-line form, it is possible to have multiple statements executed as the result of an If...Then decision. All statements must be on the same line and separated by colons, as in the following statement:  
 
If A > 10 Then A = A + 1 : B = B + A : C = C + B  
 
A block form If statement must be the first statement on a line. The Else, ElseIf, and End If parts of the statement can have only a line number or line label preceding them. The block If must end with an End If statement.  
 
To determine whether or not a statement is a block If, examine what follows the Then keyword. If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement.  
 
The Else and ElseIf clauses are both optional. You can have as many ElseIf clauses as you want in a block If, but none can appear after an Else clause. Block If statements can be nested; that is, contained within one another.  
 
When executing a block If (second syntax), condition is tested. If condition is True, the statements following Then are executed. If condition is False, each ElseIf condition (if any) is evaluated in turn. When a True condition is found, the statements immediately following the associated Then are executed. If none of the ElseIf conditions are True (or if there are no ElseIf clauses), the statements following Else are executed. After executing the statements following Then or Else, execution continues with the statement following End If.  
 
Tip   Select Case may be more useful when evaluating a single expression that has several possible actions. However, the TypeOf objectname Is objecttype clause can't be used with the Select Case statement.  
 
Note   TypeOf cannot be used with hard data types such as Long, Integer, and so forth other than Object.
 
Function qwerty(a, b, x)  
   Select Case x  
       Case 4, Is > 12  
           qwerty = "Не определена"  
       Case Is < 2  
           qwerty = (a + b + x ^ 2) / b + x  
       Case Is > 8  
           qwerty = Sqr(Abs(a * b + x))  
       Case Else  
           qwerty = a + Sin(b * x)  
   End Select  
End Function  
 
Sub test()  
   For i = 0 To 25  
       Debug.Print i, qwerty(5, 6, i)  
   Next  
End Sub
 
Спасибо
Страницы: 1
Читают тему
Наверх