2017-05-05 1 views
0

변수 값이 "Mils"과 같으면 명시된 기능을 수행하도록 If 문을 수행하려고합니다. 그러나 현재 아무 일도 일어나지 않고 있습니다."If/Then"문이 작동하지 않습니다

내가 뭘 잘못하고 있니? 에서

z = Sheet2.range("B20").value 
If z = "Mils" Then 
    Set cx = Sheet8.range("D3", Sheet8.range("D3").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value/y 
    Next rng 
    Set cy = Sheet8.range("E3", Sheet8.range("E3").End(xlDown)) 
    For Each rngy In cy 
     rngy.value = rngy.value/y 
    Next rngy 
End If 
+2

'z = Sheet2.range' 라인에 중단 점을 설정하고 코드를 단계별로 실행하면 어떻게됩니까? 'z = "Mils"Then "행에 도달 할 때'z'의 값은 무엇입니까? 코드를 계속 진행할 때 어떤 일이 발생합니까? –

+0

죄송합니다. 이해하지 못합니다 –

+1

커서를'z ='줄에 놓고 F9를 누르십시오. 코드가 실행되고 그 지점에 도달하면 중지됩니다. 코드 줄을 실행하려면 F8 키를 누르십시오. 그것은 다시 멈출 것이다. 'z'가 무엇을 포함하고 있는지 살펴보고,'If z ='를 실행하기 위해 다시 F8을 누르십시오. 다시 멈출거야. F8 키를 눌러 코드를 단계별로 실행하고 다음 단계로 넘어가는 위치를 확인합니다. –

답변

1

내가 읽고있는 무슨, 프로그램은 아마 은 지침의 일부를 무시했습니다.

1) 위에 커서를 가져가하고 코드를 클릭

이 문제 해결 방법을 시도.

If z = "Mils" Then 

2) 점진적으로 F8 키를 클릭하여 해당 행

3)에 표시를 넣어 F9를 클릭합니다 (이 키가 무엇을하는지는 그 코드까지 프로그램을 실행합니다. 그것은 기본적으로 당신에게 흐름을 보여줍니다 있도록 프로그램의)

4) F8은 당신의 코드 중 하나를 생략하는 경우 확인하십시오.

If z = "Mils" Then 
    Set cx = Sheet8.range("D3", Sheet8.range("D3").End(xlDown)) 
    For Each rng In cx 
     rng.value = rng.value/y 
    Next rng 
    Set cy = Sheet8.range("E3", Sheet8.range("E3").End(xlDown)) 
    For Each rngy In cy 
     rngy.value = rngy.value/y 
    Next rngy 
End If 

이 그때는 아마 스킵 단계를 살펴보고 북동해야 어떤 단계를 건너 뛴 경우 세서리 조정.

+1

사소한 문제 - "커서를 가리 키십시오"- F9를 누르기 전에 실제로 선을 클릭해야합니다. 그렇지 않으면 현재 선이 마우스로 움직이는 대신 중단 점으로 끝납니다. 추신 : 줄의 왼쪽에있는 테두리 영역을 클릭하여 키 입력을 절약 할 수 있습니다.하지만 디버깅에 익숙하지 않은 사람에게 설명하기가 어려워 짐을 인정해야합니다. – YowE3K

+0

코드에 의한 의미는 '무시'지침입니다. 코드 '무시'지침을 본 적이 없지만 사용자가 'If'문이 True로 평가되어야한다고 생각한 사례를 보았습니다. false로 평가하면 결과적으로 코드는 if 블록 내부의 행을 실행하지 않습니다. (예상). –

관련 문제