2016-07-20 5 views
0

VBA에서 한 줄에 ForIf 문을 넣을 수 있습니까? 내가 무엇을 얻을 수있는 것은 가장 가까운이 :Excel VBA : "For"및 "If"문을 한 줄로?

For i = 0 To n: If a = i Then a = b 
Next i 

내가 작성하는 경우 :

For i = 0 To n: If a = i Then a = b: Next i 

내가 오류 "를 들어없이 다음"를 얻을.

+2

왜 당신이 한 줄에 필요합니까 :

이 코드는 오류가 발생하지 않습니다? – RGA

+0

읽기 전용입니다. 짧고 간단한 코드 부분의 경우 모든 것을 자신의 줄에두기보다는 한 줄로 코드를 읽고 이해하는 것이 더 쉽습니다. – Klaidonis

+1

대답이 아니지만 VBA 루프 구조 (* For * Next, Do ... Loop, While ... Wend', For Each)의 * all *과 동일한 동작을 찾을 수 있습니다. .. 다음). 내 직감은 컴파일러가 줄 번호를 처리하고 중단 점을 디버깅하는 방법의 일부 조합과 관련이 있다는 것입니다. – Comintern

답변

3

If이 아닌 IIf으로 처리 할 수 ​​있습니다.

For i = 0 To n: IIf a = i, a = b, False: Next i 
+0

유일한 단점은 True 또는 False 절을 ​​생략 할 수 없다는 것입니다. True 또는 False 부분에 여러 개의 명령문을 포함 할 수 있습니까? – Klaidonis

+1

나는 그렇게 생각하지 않는다 ... –

+0

a = b는 IIf 절에서 true 또는 false를 반환하는 비교이며, a의 값을 b로주는 assigment 문은 아니다. –

0

사용 select case 아닌 경우의 ...

For i = 0 To n: select case a = i: case true: a = b: end select: Next i