簡體   English   中英

比較兩個工作表和突出顯示差異

[英]Compare Two Worksheets and Highlight Difference

我有兩個包含相同數據點的工作表。 我需要將Sheet1(有效數據)與Sheet2進行比較,並通過將單元格顏色更改為紅色來查看Sheet2上的更改內容。 我試過這個宏,但是它畫了一切,而不僅僅是不同的細胞。 下面是顯示一小部分數據的圖像,實際上每個工作表Image1 Image2上大約有3K行

這是我嘗試的語法(由於幾乎突出顯示所有內容而無效)

Dim mycell As Range
Dim mydiff As Integer
Dim shtSheet1 As String
Dim shtSheet2 As String

shtSheet2 = "Sheet2"
shtSheet1 = "Sheet1"

For Each mycell In ActiveWorkbook.Worksheets(shtSheet2).UsedRange
  If Not mycell.Value = ActiveWorkbook.WOrksheets(shtSheet1).Cells(mycell.Row, mycell.Column).Value Then
    mycell.Interior.Color = vbRed
    mydiffs = mydiffs+1
  End If
Next

編輯
下面的建議仍然會產生不准確的結果,所以我將一些值復制/粘貼到記事本中進行比較,我發現一張表后面有一些隨機空格,這將導致Sheet1到Sheet2的數據永遠不會相同。

VBA是否具有可以添加的TRIM()特征/功能,因此數據末尾的隨機空間在比較中無關緊要?

為什么不在Sheet2中嘗試條件格式? 公式可能是

= A1 <> Sheet 1中!A1

並在格式下將填充顏色設置為紅色。

試試下面

Sub checked()
    Dim mycell As Range
    Dim mydiff As Integer
    Dim shtSheet1 As Worksheet
    Dim shtSheet2 As Worksheet
    Set shtSheet1 = Worksheets("Sheet1")
    Set shtSheet2 = Worksheets("Sheet2")
    For Each mycell In shtSheet2.UsedRange
      If Not mycell.Value = shtSheet1.Cells(mycell.Row, mycell.Column).Value Then
        mycell.Interior.Color = vbRed
        mydiffs = mydiffs + 1
      End If
    Next
End Sub

您的答案似乎已在此處提供: 查找2個Excel工作表之間的差異? 您正在尋找Compare_excel或其他一些外部Excel差異。

如果您的列數較少,您可能需要在其中一個表的另一列中嘗試類似“= Sheet1!A1 = Sheet2!A1”的內容。 然后,您可以過濾FALSE條目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM