2016-06-03 2 views
0

VBA를 사용하여 Excel 2010 C 열 (vlookup에서 생성)의 값이 # N/A인지 확인한 다음 A 열의 값을 확인합니다. 해당 열을 D 열에 넣으면 프로그램이 오류를 표시하지 않지만 Excel을 실행할 때마다 Excel이 중단됩니다. 위의 의견으로 당VBA for excel 2010, Excel 계속 충돌 있음

Sub casesVsQueue()  
        Dim loop_counter As Integer 
       Dim colD_counter As Integer 
        loop_counter = 1 
        colD_counter = 2 
do until isempty(Sheets("Sheet1").Range("A" & loop_counter).Value) 
       If iserror(Sheets("Sheet1").Range("C" & loop_counter).Value) Then 
         Sheets(“Sheet1”).Range("D"& colD_counter).value = Sheets(“Sheet1”).Range("A" & loop_counter).value 
         loop_counter = loop_counter + 1 

     End If 
Loop 
End Sub 
+0

당신은 줄 단위 코드 (단계별로) 어디 충돌 않을 경우? –

+1

'End If'다음에 'loop_counter = loop_counter + 1'을 이동하십시오. 내부에 있으면 다음 행으로 이동하지 않고 루핑을 계속합니다. –

+0

Range ("D"& colD_counter) .value = Sheets ("Sheet1"). 범위 ("A"& loop_counter) .value' 그들은 당신을 멈추게 할 것이다. 암호. –

답변

2

:

세 가지 :

  1. loop_counter이 만약 밖에서 할 필요가

    는 코드입니다. 그렇지 않으면 If가 true로 확인되는 즉시 사용자가 Excel을 종료 할 때까지 동일한 셀에서 반복됩니다.

  2. "Smart Quotes"는 일반 따옴표로 변경해야합니다. 팀 윌리엄스 (Tim Williams)는 대개 Word와 같은 다른 매체를 통해 복사 및 붙여 넣기를 수행합니다.

  3. colD_counter가 누락되었습니다. 이것이 없으면 항상 동일한 셀에 출력됩니다.

강령 :

Sub casesVsQueue() 
    Dim loop_counter As Integer 
    Dim colD_counter As Integer 

    loop_counter = 1 
    colD_counter = 2 

    Do Until IsEmpty(Sheets("Sheet1").Range("A" & loop_counter).Value) 
     If IsError(Sheets("Sheet1").Range("C" & loop_counter).Value) Then 
      Sheets("Sheet1").Range("D" & colD_counter).Value = Sheets("Sheet1").Range("A" & loop_counter).Value 
      colD_counter = colD_counter + 1 
     End If 
     loop_counter = loop_counter + 1 
    Loop 
End Sub