2014-11-19 1 views
-2

이 도움말은 도움이 될만한 내용입니다.Excel VBA 첫 번째와 마지막 이름을 시트 1에서 시트 2로 일치시키고 시트 1에서 모든 일치 항목을 삭제하십시오.

"시트 3"에서 열 "B"에 "성"의 데이터베이스가 있습니다. & "C"열에 "이름"이 있습니다. 같은 이름의 목록은 "Sheet 2", "Last name"열 E & "F"열의 "First Name"

버튼 2 번에서 모든 일치 항목을 삭제해야합니다 . 또한 "시트 2"아래로 얼마나 많은 행을 변경할 수 있어야합니다. 예를 들어 "시트 2"의 처음 600 행만 보게됩니다.

나는 이것이 충분히 간단하게 설명되기를 바랍니다.

이것은 특정 범위를 지우는 데 사용 된 코드이지만 끔찍한 것이며이 방법을 매우 실용적으로 만드는 범위를 변경해야 할 수도 있습니다.

Sub ClearSelection() 

    Sheets("ADULT Sign On Sheet").Select 
    Range("E6:F36").Select 
    Selection.ClearContents 
    Range("E42:F72").Select 
    Selection.ClearContents 
    Range("E78:F108").Select 
    Selection.ClearContents 
    Range("E114:F144").Select 
    Selection.ClearContents 
    Range("E150:F180").Select 
    Selection.ClearContents 
    Range("E186:F216").Select 
    Selection.ClearContents 
    Range("E222:F252").Select 
    Selection.ClearContents 
    Range("E258:F288").Select 
    Selection.ClearContents 
    Range("E294:F324").Select 
    Selection.ClearContents 
    Range("E330:F360").Select 
    Selection.ClearContents 

End Sub 
+0

안녕하세요, 지금까지 무엇을 시도하셨습니까? 질문을 수정하여 코드를 포함 시키십시오. – Gareth

+0

SO는 코드 아웃소싱 커뮤니티가 아닙니다. @Gareth가 언급했듯이, 당신은 당신의 코드 중 일부를 공유 할 필요가있다. – Chrismas007

+0

나는 사과하지 않았다. 코딩 경험이 없으며 이에 대한 코드가 없습니다. –

답변

0

이 당신 자신을 위해 약간의 VBA를 적용하기 시작 얻을 수 있는지, 잠시 제쳐 사이트의 의도의 정치 퍼팅. 당신이 설명한 나는이 지역에 패턴을 발견하고 그들을 통해 반복하여 이전 세포 청산 루틴을 강화했습니다으로

Sub ClearSelection_and_DeDupe() 
    Dim r As Long, v As Variant, ws3 As Worksheet 

    Application.ScreenUpdating = False 
    Application.EnableEvents = False 

    With Sheets("ADULT Sign On Sheet") 
     For r = 6 To 330 Step 36 
      .Cells(r, 5).Resize(31, 2).ClearContents 
     Next r 
    End With 

    On Error GoTo fìn 
    Set ws3 = Sheets("Sheet 3") 
    With Sheets("Sheet 2") 
     r = Application.Max(.Cells(Rows.Count, 5).End(xlUp).row, .Cells(Rows.Count, 6).End(xlUp).row) 
     v = InputBox(prompt:="How many rows to look at?", Default:=r) 
     For r = Application.Sum(v) To 2 Step -1 
      If CBool(Application.CountIfs(ws3.Columns(2), .Cells(r, 5).Value, ws3.Columns(3), .Cells(r, 6).Value)) Then _ 
       .Rows(r).EntireRow.Delete 
     Next r 
    End With 
fìn: 
    Set ws3 = Nothing 
    Application.EnableEvents = True 
    Application.ScreenUpdating = True 
End Sub 

그 코드를 정확히 수행합니다. TBH이면 루프 코드는 다음과 같이 쉽게 작성할 수 있습니다.

Sheets("ADULT Sign On Sheet").Range("E6:F36,E42:F72,E78:F108,E114:F144,E150:F180,E186:F216,E222:F252,E258:F288,E294:F324,E330:F360").ClearContents 

... 'For ... Next` 루프는 더 차갑게 보입니다.

내가 제공 한 스 니펫을 이해하고 명령 단추로 통합 할 수 있는지 확인하십시오. 그 방법을 가르치는 데 사용할 수있는 교재의 양은 끝이 없으며 이전에 질문 한이 사이트의 (다른 사람들 사이에서) Q & A는 훌륭한 자료입니다.

자신의 목적에 맞게 통합하는 데 문제가있는 경우 문제의 설명과 함께 자신의 노력을 보여주는 샘플을 다시 게시해야합니다. 행운을 빕니다!

+0

이 방법을 적용하는 방법을 이해하는 데 도움이되어 매우 유용합니다. –

관련 문제