Excel VBA-需要比较同一工作表中的两个表。 input表将作为select使用鼠标

我想比较同一张表中的两个表。 我将select第一个表格并点击button作为第一个input。 同样我会给下一个表格input。 当我点击“比较”button时,结果应该通过突出显示第二个表中的单元格来显示。 请帮我做这个。

下面是我用来比较两张表中的两个表的脚本。 请帮助我find使用select选项进行input

Private Sub CompareBtn_Click() Dim first_index As Integer Dim last_index As Integer Dim sheet1 As Worksheet Dim sheet2 As Worksheet Dim r1 As Integer Dim r2 As Integer Dim found As Boolean Dim rng As Range Set sheet1 = Worksheets("Source") Set sheet2 = Worksheets("Minus") first_index = 1 last_index = sheet2.UsedRange.Rows.Count For r2 = first_index To last_index found = False For r1 = first_index To last_index If sheet1.Cells(r1, 1) = sheet2.Cells(r2, 1) _ And _ sheet1.Cells(r1, 2) = sheet2.Cells(r2, 2) _ Then found = True Exit For End If Next r1 If Not found Then sheet2.Cells(r2, 1).Interior.ColorIndex = 35 sheet2.Cells(r2, 2).Interior.ColorIndex = 35 End If Next r2 End Sub 

试试下面的代码:

 Sub CompareTable() Dim oldTable As Range, newTable As Range, i As Integer, J As Integer, m As Integer, n As Integer On Error Resume Next Set oldTable = Application.InputBox(Prompt:="Please Select Raw Data", Title:="Range Select", Type:=8) Set newTable = Application.InputBox(Prompt:="Please Select Processed Data", Title:="Range Select", Type:=8) i = oldTable.Rows.Count J = oldTable.Columns.Count For m = 1 To i For n = 1 To J If oldTable.Cells(m, n) <> newTable.Cells(m, n) Then newTable.Cells(m, n).Interior.ColorIndex = 6 End If Next n Next m End Sub 

这会问你两个范围。 select要比较的两个表格,差异将在第二个表格中突出显示。

编辑_________________________________________________________________________________

或者你可以更新你的代码:

 Sub CompareBtn_Click() Dim first_index As Integer Dim last_index As Integer Dim rows_index As Integer, columns_index As Integer Dim sheet1 As Worksheet Dim sheet2 As Worksheet Dim r1 As Integer Dim r2 As Integer Dim found As Boolean Dim rng As Range Set sheet1 = Worksheets("Source") Set sheet2 = Worksheets("Minus") rows_index = sheet2.UsedRange.Rows.Count columns_index = sheet2.UsedRange.Columns.Count For r2 = 1 To rows_index For r1 = 1 To columns_index If sheet1.Cells(r2, r1) <> sheet2.Cells(r2, r1) Then sheet2.Cells(r2, r1).Interior.ColorIndex = 35 End If Next r1 Next r2 sheet2.Select End Sub