В настоящее время я получаю ежемесячный дамп из одной из наших баз данных, которая содержит все наши активные подписки на общественный транспорт.Моя задача - загрузить их в SAP, но только те значения, которые отличаются от прошлых месяцев.Таким образом, должны быть выбраны все новые подписки и все подписки, для которых одно из значений в одном из разных столбцов отличается от предыдущего месяца.Если строка точно такая же, она мне не нужна.
Файл, который я получаю, содержит 7 столбцов, столбец A
содержит уникальный ключ для каждого сотрудника.
Я бы хотелиспользуйте VBA для сравнения двух файлов Excel, вставив файл из прошлого месяца в Sheet1
и файл из этого месяца в Sheet2
.Я хочу найти те строки, которые равны, и удалить их из Sheet2
.
Я уже нашел несколько примеров кодов VBA, делающих это, но, похоже, ничего не работает должным образом.Ниже приводится последний, который я использовал, что дает мне синтаксическую ошибку в следующей строке кода Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
.
Sub CleanDupes()
Dim wsA As Worksheet
Dim wsB As Worksheet
Dim keyColA As String
Dim keyColB As String
Dim rngA As Range
Dim rngB As Range
Dim intRowCounterA As Integer
Dim intRowCounterB As Integer
Dim strValueA As String
keyColA = "A"
keyColB = "B"
intRowCounterA = 1
intRowCounterB = 1
Set wsA = Worksheets("Sheet1")
Set wsB = Worksheets("Sheet2")
Do While Not IsEmpty(wsA.Range(keyColA & intRowCounterA).Value)
intRowCounterB = 1
Set rngA = wsA.Range(keyColA & intRowCounterA)
strValueA = rngA.Value
Do While Not IsEmpty(wsB.Range(keyColB & intRowCounterB).Value
Set rngB = wsB.Range(keyColB & intRowCounterB)
If strValueA = rngB.Value Then
'Code to delete row goes here, but I'm not sure exactly'
'what it is.'
wsB.Range(Rows(intRowCounterB)).EntireRow.Delete
intRowCounterB = intRowCounterB - 1
End If
intRowCounterB = intRowCounterB + 1
Loop
intRowCounterA = intRowCounterA + 1
Loop
End Sub
Есть идеи?
Ник