一鍵在不同工作表上執行多個宏

一鍵在不同工作表上執行多個宏

我有一個有 2 個巨集的:

  • 第一個刪除sheet2列1上的所有數據
  • 第二個對sheet1上的兩個欄位進行排序,並將資料放在sheet2的column1上。

在此輸入影像描述

我想一鍵運行它們。我該怎麼做呢?

答案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 10Sheet Name和資料範圍的值。A1:B10

相關內容