如何用VBA比較兩個EXCEL工作表

如何用VBA比較兩個EXCEL工作表

更新於 發佈於 閱讀時間約 3 分鐘

為什麼要比較Excel 工作表(Worksheet)

工作中,常常會儲存多個同一目的,但不同時間的工作。或者,有時要檢查兩個人做的EXCEL工作表,是否有所不同。當然,若工作表很小,肉眼看是最快的,但是,如果是庫存的大量資料如1萬筆以上的財務資訊等,這時靠肉眼看,速度實在是太慢了,而且也容易出錯。

 

當然另外一種方式是另起一個工作表,譬如說,如要檢查工作表A 和 工作表B的不同,主要另起一個工作表C ,令工作表C的每一欄位其公式為工作表A的欄位-工作表C的欄位就可以了。

可行的VBA程式碼

不過,聰明的人還是喜歡用可以偷懶的方式。可行的VBA程式碼如下

Sub Compare_Two_Worksheets()
Application.Calculation = xlCalculationManual '先關掉EXCEL 裏的自動計算功能
Dim iR As Double, iC As Double '計數用的
Dim iRow_M As Double, iCol_M As Double '定義要比較到的最大列及最大欄
Dim source1_sheet As Worksheet, source2_sheet As Worksheet
Set source1_sheet = ThisWorkbook.Worksheets(SHEETNAME1) '這裏要指定SHEETNAME1為工作表名稱
Set source2_sheet = ThisWorkbook.Worksheets(SHEETNAME2) '這裏要指定SHEETNAME2為工作表名稱
iRow_M = source1_sheet.UsedRange.Rows.Count '這裏確定要比較到的最大列
iCol_M = source1_sheet.UsedRange.Columns.Count '這裏確定要比較到的最大欄

For iR = 1 To iRow_M
For iC = 1 To iCol_M
If (source1_sheet.Cells(iR, iC).Value <>source2_sheet.Cells(iR, iC).Value) Then
source1_sheet.Cells(iR, iC).Interior.ColorIndex = 6 '用黃色標註
source2_sheet.Cells(iR, iC).Interior.ColorIndex = 6
End If
Next iC
Next iR

Application.Calculation = xlAutomatic '重新打開自動計算功能

End Sub

 希望常常在比較EXCEL的上班族,可以用的上。

當然還有一些可以再調整的地方,譬如說,把比對不同的資訊,再寫在另外一個工作表上。

avatar-img
bot.學習.人的沙龍
1會員
32內容數
留言
avatar-img
留言分享你的想法!
bot.學習.人的沙龍 的其他內容
如果在一個群組裏,大家講不同的語言怎麼辦呢? 「bot.學習.人」因為工作的需要,團隊裏有外國人,為了避免大家溝通有困難,也免去了時時要線上翻譯,所以作了一個在群組裏自動翻譯的機器人。用到的是Google 提供的免費服務哦。 如果您有使用google app script,下面這一行就可以有
如果您要管理telegram 社群,那您需要一個群管機器人,群管機器人可以把您設定歡迎信息,和初入群的群友打招呼,做基本的驗證,並且說明群規。 今天,「bot.學習.人」就說明一下如何用GroupHelp群管機器人 一、把群管機器人加到您的群 二、把它變成群管理員 三、變成群管理員之後,
保險保障和銀行存款那裏不同呢?或許最大的不同,就是這句「平時注入一滴水,難時擁有太平洋」吧。
如果在一個群組裏,大家講不同的語言怎麼辦呢? 「bot.學習.人」因為工作的需要,團隊裏有外國人,為了避免大家溝通有困難,也免去了時時要線上翻譯,所以作了一個在群組裏自動翻譯的機器人。用到的是Google 提供的免費服務哦。 如果您有使用google app script,下面這一行就可以有
如果您要管理telegram 社群,那您需要一個群管機器人,群管機器人可以把您設定歡迎信息,和初入群的群友打招呼,做基本的驗證,並且說明群規。 今天,「bot.學習.人」就說明一下如何用GroupHelp群管機器人 一、把群管機器人加到您的群 二、把它變成群管理員 三、變成群管理員之後,
保險保障和銀行存款那裏不同呢?或許最大的不同,就是這句「平時注入一滴水,難時擁有太平洋」吧。