所以我想比較兩個不同的工作簿在Excel中與VBA。我知道應用程序「比較電子表格」確實存在,但我需要一個通用代碼。我在論壇上尋找了很多,試圖找到一個解決方案,但沒有人符合我的需求。比較兩個不同的工作簿和突出差異excel vba
我想要的是:基本上是一個腳本:要求用戶另一個excelfile(file2)與當前文件(file1)進行比較。然後,差異需要在當前文件中突出顯示。
我是一種初學者,所以請溫和:)我有一些代碼,我正在嘗試使用,但它只適用於同一工作簿中兩張紙的比較。
如果有人得到了一些能夠完成這項工作的代碼,或者讓我更進一步,那麼分享代碼真的很友善。或者如果你有一些關於如何使代碼低於我的需求的提示。非常感謝!!
`Sub test()
Dim varSheetA As Variant
Dim varSheetB As Variant
Dim strRangeToCheck As String
Dim iRow As Long
Dim iCol As Long
strRangeToCheck = "A1:IV65536"
' If you know the data will only be in a smaller range, reduce the size of the ranges above.
Debug.Print Now
varSheetA = Worksheets("Sheet1").Range(strRangeToCheck)
varSheetB = Worksheets("Sheet 1").Range(strRangeToCheck) ' or whatever your other sheet is.
Debug.Print Now
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol = LBound(varSheetA, 2) To UBound(varSheetA, 2)
If varSheetA(iRow, iCol) = varSheetB(iRow, iCol) Then
'MsgBox ("No difference")
' Cells are identical.
' Do nothing.
Else
HighlightCells
' Cells are different.
' Code goes here for whatever it is you want to do.
End If
Next iCol
Next iRow
結束子 ' 這是我試圖做的,以使作爲不同粗體或只是提示用戶的部分(一個或多個)所述的修改:
子試驗()
Dim varSheetA As Variant
Dim varSheetB As Variant
Dim strRangeToCheck As String
Dim iRow As Long
Dim iCol As Long
strRangeToCheck = "A1:N70"
' If you know the data will only be in a smaller range, reduce the size of the ranges above.
Debug.Print Now
varSheetA = Worksheets("229019_PSS360_17w15").Range(strRangeToCheck)
varSheetB = Worksheets("229019_PSS360_Ny").Range(strRangeToCheck) ' or whatever your other sheet is.
Debug.Print Now
For iRow = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol = LBound(varSheetA, 2) To UBound(varSheetA, 2)
If varSheetA(iRow, iCol) <> varSheetB(iRow, iCol) Then
Selection.Font.BOLD = True
'MsgBox ("diff")
' Cells are identical.
' Do nothing.
Else
'MsgBox ("same")
' Cells are different.
' Code goes here for whatever it is you want to do.
End If
Next iCol
Next iRow
結束子
我看到你幾乎從我的[早期回答](https://stackoverflow.com/a/5388488/119775)複製粘貼代碼。你是否嘗試修改它以滿足你的需求?你這樣做時遇到的具體問題是什麼?讓我們知道,然後我們可以提供幫助。 –
嘿,謝謝你的回答! 我不是故意複製和粘貼你的代碼就是這樣,我的意思是讓人們知道我在做什麼,我發現你的代碼真的很好。 您的代碼非常好,但我試圖將兩個工作簿相互比較,代碼僅適用於兩個工作表。 在你的答案你沒有提供一種方式,其中你可以比較不同的工作簿,但我並沒有得到它的工作,使其再次 感謝askes另一個文件中的用戶對你的答案 – zejton
「並沒有得到它的工作「 - >告訴我們你試過什麼,什麼不行,然後我們可以提供幫助。 –