나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 끼에엑 (redydtn)

추천:  2
파일:     조회:  1880
제목:   특정 문자가 있는 셀에만 붙여넣기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 365용

* 아래줄에 질문을 작성하세요 >>

Sub Test001()

Dim j As Long
Dim testResult As String

j = 1
textResult = Cells(j, "C").Value
    Do While j = Sheet1.Rows.Count + 1
        If textResult = "Test" Then
            Cells(j, "C").Value = Cells(j, "A").Value
            j = j + 1
        End If
    Loop
    
End Sub

안녕하세요.
엑셀 VBA를 공부하여 매크로를 만들어보고 있는데 작동이 되지 않는 원인을 모르겠어 글을 올려봅니다.

제가 생각했던 코드는

A열에 있는 문자들을 C열에 복사하되,
C열에 있는 Test 외의 문자가 적힌 부분에 복사가 되지 않게 하려고 짠 코드입니다.

그런데 막상 실행해보니 복사는 커녕 아무 일도 일어나지 않았습니다.
아무런 오류가 나오지 않아서 어디가 잘못된 것인지 더더욱 알기도 어렵네요.

VBA 고수분들의 도움이 필요합니다 ㅠㅠ
 
[불량 게시물 신고]  
slgiDo While j = Sheet1.Rows.Count + 1

j=1   Sheet1.Rows.Count = 1048576
같지 않기 때문에 FALSE 이므로 루프를 빠져 나옵니다. 

Do While j <= Sheet1.Rows.Count 로 변경하셔야 합니다. 

Sheet1.Rows.Count 는 Sheet가 표시할 수 있는 MAX 인데 몇개 안되는 라인을 계산하기 위해 1048576번을 계산해야 한다는 이야기 인데 usedrange 나  end(xlup) 같은걸로 MAX 값을 계산하는게 빠릅니다.
02-10 (10:32)
삭제 ■신고
        
  

작성일 : 2021-02-05(19:48)
최종수정일 : 2021-02-05(19:48)