버튼 하나로 여러 시트에서 여러 매크로 실행

버튼 하나로 여러 시트에서 여러 매크로 실행

2개의 매크로가 있는 것이 있습니다.

  • 첫 번째는 sheet2 열1의 모든 데이터를 삭제합니다.
  • 두 번째는 sheet1의 두 열을 정렬하고 sheet2의 열1에 데이터를 넣습니다.

여기에 이미지 설명을 입력하세요

한 번의 클릭으로 두 가지를 모두 실행하고 싶습니다. 어떻게 해야 하나요?

답변1

첨부된 스크린샷을 바탕으로 두 개의 VBA 매크로가 있고 두 개의 열을 비교하고 일치하지 않는 값을 다른 시트에 복사하려고 한다는 것을 발견했습니다.

이를 위해서는 두 개의 매크로를 하나로 결합하는 방법이 필요합니다.

방법을 제안하고 싶습니다. 원본 시트의 두 열을 비교하여 일치하지 않는 값을 찾고 데이터를 다른 시트에 복사하는 것입니다.

매크로는 행에 색상 형식을 적용하고 복사 후 두 열의 형식을 반대로 바꿉니다.

Sub HighlightColumnDifferences()

    Dim bothcolumns As Range, i As Integer

    Set bothcolumns = Selection

    With bothcolumns

        For i = 1 To .Rows.Count

            If Not StrComp(.Cells(i, 1), .Cells(i, 2), vbBinaryCompare) = 0 Then

                Range(.Cells(i, 1), .Cells(i, 2)).Interior.ColorIndex = 6

            End If

        Next i

    End With

Call Copy
Application.CutCopyMode = False


End Sub

Sub Copy()

    Dim i As Long

    For i = 1 To 10
        If Sheets("Sheet1").Range("A" & i).Interior.ColorIndex = xlNone Then
            Range("A" & i).Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
        End If
        If Sheets("Sheet1").Range("B" & i).Interior.ColorIndex = xlNone Then
            Range("B" & i).Copy Destination:=Sheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next i

    Worksheets("Sheet1").Activate
    Range("A1:B10").ClearFormats
    Application.CutCopyMode = False

End Sub

작동 방식:

  • 복사&반죽두 코드 모두 표준 모듈로 사용됩니다.
  • Sheet 1비교하려는 두 열의 데이터를 선택합니다 .
  • 달리다 HighlightColumnDifferences매크로.

주의

  • A와 B만 선택하는 것이 아니라 비교할 두 개의 열을 선택할 수 있습니다.
  • 두 번째 매크로에서 , For i = 1 To 10데이터 Sheet Name범위 의 값을 조정할 수 있습니다 .A1:B10

관련 정보