2016-09-15 2 views
0

내 코드는 행렬 1의 셀에서 행렬 2의 내 기준을 충족하는 모든 셀에 텍스트를 복사합니다.하지만 첫 번째 셀에만 복사하려고합니다 매트릭스 2에서 나의 비평에 부합하고 멈춘다.조건을 만족하는 범위의 첫 번째 셀만 선택하기

Private Sub CommandButton1_Click() 

Dim i As Integer 
Dim j As Integer 

For j = 2 To 2 
    For i = 21 To 21 

     If Cells(i, j).Value > 0 Then 
      Cells(i, j).Value = Cells(i, j).Value - 1 
      Cells(i, j).Offset(0, -1).Select 
     End If 

     'as it says - for EACH - so it copies in aLL the cells' 
     'I can't Change the range though, cause there will come a Loop eventually' 
     For Each cell In Range("a1:aap15") 

      If cell.Interior.ColorIndex = 6 Then 
       If cell.Value = "" Then 
        cell.Value = ActiveCell.Value 
       End If 
      End If 
     Next 
    Next 
Next 

End Sub 
+0

왜 두 번째 루프가 있습니까? 'i = 21 ~ 21'? 목적은 무엇입니까? (또는 첫 번째 것입니까?) –

+0

b21이 0이 될 때까지 값을 줄이면 b22를 계속합니다. 나는 아직 그 부분에 오지 않았기 때문에, 나는 그 합병증을 무시하고 내가 이미 가지고있는 proplems을 알아낼 때까지 그것을 더 쉽게 만들었다. – Julian

답변

0

Exit For 명령을 사용하여 for 루프를 종료 할 수 있습니다. 여기에 추가하려는 것 같습니다 :

If cell.Interior.ColorIndex = 6 Then 
    If cell.Value = "" Then 
     cell.Value = ActiveCell.Value 
     Exit For 
    End If 
End If 

참고 : 테스트되지 않았습니다. 어떤 문제가 있으면 알려주세요

+0

완벽하게 작동합니다. 고맙습니다. – Julian

+0

방금 ​​Excel이 범위 내에서 왼쪽에서 오른쪽으로 검색 한 다음 맨 위에서 아래로 검색한다는 것을 알았습니다. 첫 번째 열을 위에서 아래로, 두 번째 열을 검색하도록 할 수 있습니까? 이 문제에 대한 새로운 질문을해야합니까? – Julian

+0

질문이 이미 존재하고 여기에서 이미 답변되었거나 Google 검색으로 확인할 수 있는지 확인합니다. 그게 실패하면 새로운 질문으로 물어볼 가치가 있습니다. – CallumDA

관련 문제