В настоящее время у меня возникают некоторые трудности с выделением различных ячеек
В одной рабочей книге два листа, и программа должна отображать различия каждой ячейки
Они имеют одинаковое количество строк истолбцы.
У меня есть программа, которая записывает различия в конце столбцов, но она не выделяет разные ячейки.
Не могли бы вы помочь мне добавить несколько кодов, чтобы выделить ячейки, которые имеютРазличия?
Option Explicit
'=========================================================================================
'=========================================================================================
Sub CheckDifferences_rev3()
Sheets("sheet2").Select
Columns("AA:AD").Select
Selection.Copy
Sheets("sheet1").Select
Columns("AA:AA").Select
ActiveSheet.Paste
Const sSHEETNAME_A As String = "Sheet1"
Const sSHEETNAME_B As String = "Sheet2"
Dim iMessageColumnNo As Integer
Dim vaDataValues_A As Variant
Dim vaDataValues_B As Variant
Dim iLastColumnNo As Integer
Dim iLastRowNo As Integer
Dim iColumnNo As Integer
Dim vValue_A As Variant
Dim vValue_B As Variant
Dim sMessage As String
Dim iRowNo As Integer
Dim wksA As Worksheet
Dim wksB As Worksheet
Set wksA = ThisWorkbook.Worksheets(sSHEETNAME_A)
Set wksB = ThisWorkbook.Worksheets(sSHEETNAME_B)
iLastColumnNo = WorksheetFunction.Max(miLastColumnNo(wks:=wksA), _
miLastColumnNo(wks:=wksB))
iLastRowNo = WorksheetFunction.Max(miLastRowNo(wks:=wksA), _
miLastRowNo(wks:=wksB))
iMessageColumnNo = iLastColumnNo + 1
With wksA
vaDataValues_A = Range(.Cells(1, 1), _
.Cells(iLastRowNo, iLastColumnNo))
End With
With wksB
vaDataValues_B = Range(.Cells(1, 1), _
.Cells(iLastRowNo, iLastColumnNo))
End With
For iRowNo = 1 To iLastRowNo
For iColumnNo = 1 To iLastColumnNo
vValue_A = vaDataValues_A(iRowNo, iColumnNo)
vValue_B = vaDataValues_B(iRowNo, iColumnNo)
If vValue_A <> vValue_B Then
sMessage = "(New one - " & vValue_A & " / " & "Old one - " & vValue_B & "), "
ЗДЕСЬ, ЗДЕСЬ, ГДЕ Я ПЫТАЮСЯ ДОБАВИТЬ РЕЗЮМЕ. Почему я не могу просто добавить vValue_A.Interior.Color = 3
? Я понимаю, что sMessage или vValue_A - это строка, и я не могу использовать их для контекста.
With wksA.Cells(iRowNo, iMessageColumnNo)
.Value = .Value & sMessage
End With
End If
Next iColumnNo
Next iRowNo
End Sub
'=========================================================================================
'=========================================================================================
Private Function miLastColumnNo(wks As Worksheet) As Integer
With wks.UsedRange
miLastColumnNo = .Columns(.Columns.Count).Column
End With
End Function
'=========================================================================================
'=========================================================================================
Private Function miLastRowNo(wks As Worksheet) As Integer
With wks.UsedRange
miLastRowNo = .Rows(.Rows.Count).Row
End With
End Function