我有两个相同的 Excel 表,它们具有相同的列但不同的值。我让它们按第 5 列排序。此列中的值是字母数字。虽然大多数值是相等的,但一张表中的某些值不在另一张表中。在我的代码中,当我将 TPGPRIOR 工作表的单元格范围更改为 (i,1) 时,脚本会起作用并删除工作表中的每一行。这是有道理的,因为列是不同的类别并且永远不会相等。但是,当我将该范围更改为 (i,5) 以比较两个相同类别时,脚本什么也不做。最终目标是让两张表在第 5 列中包含相同的值。我的代码是否有任何编辑可以解决这个问题?
Dim objTPG, objTPG_PRIOR
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
objXL.DisplayAlerts = False
Set objEXPO = objXL.Application.Workbooks.Open(FinalExposure)
Const xlAscending = 1
Const xlYes = 1
Set objEXPOSHEET = objEXPO.Worksheets(1)
Set objRange = objEXPOSHEET.UsedRange
Set objRange2 = objEXPOSHEET.Range("I2:I9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
Set objTPGPRIOR = objXL.Application.Workbooks.Open(FilePath & "TPG Prior.csv")
'REMEMBER TO MAKE SHEETS RUN IN BACKGROUND
Set objTPGPRIORSHEET = objTPGPRIOR.Worksheets(1)
Set objRange = objTPGPRIORSHEET.UsedRange
Set objRange2 = objTPGPRIORSHEET.Range("E2:E9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
Set objTPG = objXL.Application.Workbooks.Open(FilePath & "TPG.csv")
Set objTPGSHEET = objTPG.Worksheets(1)
Set objRange = objTPGSHEET.UsedRange
Set objRange2 = objTPGSHEET.Range("E2:E9999")
objRange.Sort objRange2, xlAscending,,,,,, xlYes
i = 2
Do Until objTPG.Worksheets(1).Cells(i,1).Value = ""
If objTPG.Worksheets(1).Cells(i,5).Value <> objTPGPRIOR.Worksheets(1).Cells(i,5).Value
Then
Set objRange = objTPG.Worksheets(1).Cells(i,1).EntireRow
objRange.Delete
i = i - 1
End If
i = i + i
Loop