Я ищу для сравнения два столбца в excel с использованием VBA. Я использую приведенный ниже код, но он принимает возраст, потому что есть тысячи ячеек. Я ищу, чтобы установить максимальный предел, но не знаю, как и где его применять. Я также не знаю, знает ли кто-нибудь более эффективный способ сделать этот код?Сравнение двух столбцов в Excel VBA
Private Sub CommandButton1_Click()
Dim Column1 As Range
Dim Column2 As Range
'Prompt user for the first column range to compare...
Set Column1 = Application.InputBox("Select First Column to Compare", Type:=8)
'Check that the range they have provided consists of only 1 column...
If Column1.Columns.Count > 1 Then
Do Until Column1.Columns.Count = 1
MsgBox "You can only select 1 column"
Set Column1 = Application.InputBox("Select First Column to Compare", Type:=8)
Loop
End If
'Prompt user for the second column range to compare...
Set Column2 = Application.InputBox("Select Second Column to Compare", Type:=8)
'Check that the range they have provided consists of only 1 column...
If Column2.Columns.Count > 1 Then
Do Until Column2.Columns.Count = 1
MsgBox "You can only select 1 column"
Set Column2 = Application.InputBox("Select Second Column to Compare", Type:=8)
Loop
End If
'Check both column ranges are the same size...
If Column2.Rows.Count <> Column1.Rows.Count Then
Do Until Column2.Rows.Count = Column1.Rows.Count
MsgBox "The second column must be the same size as the first"
Set Column2 = Application.InputBox("Select Second Column to Compare", Type:=8)
Loop
End If
'If entire columns have been selected, limit the range sizes
If Column1.Rows.Count = 11600 Then
Set Column1 = Range(Column1.Cells(1), Column1.Cells(ActiveSheet.UsedRange.Rows.Count))
Set Column2 = Range(Column2.Cells(1), Column2.Cells(ActiveSheet.UsedRange.Rows.Count))
End If
'Perform the comparison and set cells that are the same to yellow
Dim intCell As Long
For intCell = 1 To Column1.Rows.Count
If Column1.Cells(intCell) = Column2.Cells(intCell) Then
Column1.Cells(intCell).Interior.Color = vbYellow
Column2.Cells(intCell).Interior.Color = vbYellow
End If
Next
End Sub
Спасибо.
Можете уточнить, что вы хотите сравнить? Вы хотите сравнить каждую ячейку в столбце с той же строкой в другом столбце? Или вы хотите узнать, совпадает ли столбец ENTIRE с другим? – BruceWayne
Ну, в идеале оба. На данный момент с помощью кода выше я могу выделить несколько ячеек и сравнить их с несколькими несколькими ячейками. Или я также могу сравнить две целые столбцы. Я использую этот инструмент, чтобы уточнить, что загрузка была успешной, поэтому пользователь будет вводить все данные, которые они хотят загрузить, в один столбец, а затем после загрузки страницы обновляется, а затем в другом столбце можно увидеть обновленные значения. – user5836742
- Не знаю, объясню ли я это хорошо. но по существу, поскольку я использую 10000s ячеек, я хочу иметь возможность использовать инструмент для выделения всех одинаковых значений в двух столбцах, таким образом, пользователь может быстро увидеть, все ли данные верны и совпадают два столбца. – user5836742