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

작성자:  

 초보 (nayen0615)

추천:  2
파일:     업로드(매크로).xls (88KB) 조회:  3023
제목:   매크로 문의 1시트와 2시트의 값비교후 자리값 가져오기
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

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

* 아래줄에 질문을 작성하세요 >>
시트 1, 시트 2개가 있습니다. 
제가 find  매서드 를 이해하지 못해서요
짜다가 포기를 했습니다. 시트 1에서 고객번호를 "시트 2" 고객번호에도 있는지 확인후 있으면 고객번호가 같으면 "시트 2" 자료를 "시트 1"옮긴후 시트 2 비고에 1이라고 표시하고 "시트 1"에 자료가 업데이트 되지 않은 고객들은 다 지우려고 했습니다. 
그리고 시트1의 고객번호는 텍스트(8자리)로 시트 2의 고객번호는 숫자라서 비교 하기가 쉽지를 않습니다. 도움 부탁드려요

Sub 교체찾기()
            
            
Dim s, r, ri, i, t As Integer
Dim rng As Range
Dim rng1 As Range
Dim c As Range
Dim star As String
            
Set rng = Sheets("처리결과").Columns(1).SpecialCells(xlCellTypeConstants)
Set rng1 = Sheets("대상").Columns(4).SpecialCells(xlCellTypeConstants)
            
Sheets("대상").Select
Range("b3").Select
            
Do Until ActiveCell = ""
ActiveCell.Offset(1, 0).Select
Loop
            
t = ActiveCell.Row
            
For i = 3 To t - 1
Str = Cells(i, 2)
If Str = rng.Find(c.Value, LookIn:=xlValues) Then
Cells(i, 3) = Sheets("처리결과").Cells(, 3)
Cells(i, 4) = Sheets("처리결과").Cells(, 4)
Cells(i, 5) = Sheets("처리결과").Cells(, 5)
Cells(i, 6) = Sheets("처리결과").Cells(, 6)
Sheets("처리결과").Cells(, 7) = "1"  ' 비고에 1이라고 표시
End If
Next
            
For Each c In rng1
If rng1.Find(c.Value, LookIn:=xlValues) Is Nothing Then c.EntireRow.ClearContents
End If
Next c
rng1.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Set rng1 = Nothing
End Sub

 
[불량 게시물 신고]  
        
  

작성일 : 2017-02-23(16:32)
최종수정일 : 2017-02-23(16:32)