У меня есть 2 файла Excel
Трекер
**Grp** **Current Status** **Prior Status** **Any Changes**
grp1 Implementation Approved Change
grp2 Approved Approved No Change
grp3 Doc Recd Doc Recd No Change
grp4 Implementation Approved Change
Инвентарь
**Grp** **Current Status** **Col02**
grp1 Approved 789
grp2 Approved 123
grp3 Doc Recd 456
grp4 Approved 000
Я очень новый для VBA, я не уверен, как написать запрос, поэтому обращаюсь к сообществу за помощью.
В файлах трекера , если Grp имеет разные значения в состоянии и предшествующем статусе затем любых изменениях будет считаться изменением.
Если Текущий статус & Предыдущий статус такой же, он будет рассматриваться как Без изменений
для приведенного ниже примера grp1 & grp4 Текущий статус изменился с Предыдущий статус
Я просто хочу код:
- Эта проверка Изменение в Любые изменения столбец «Если изменить»
- Тогда grp1 & grp4 Текущий статус из Трекер Файл должен быть обновлен в Инвентарь file Текущий статус столбец на основе имени группы.
Примечание. Иногда между полями обоих файлов grp могут быть дополнительные пробелы.
Я делаю это вручную и обновляю записи из Tracker в Inventory каждый день.
Код VBA должен активировать соответствующие файлы и столбцы и изменить значения.
Код, который я пробовал, не работает, прикрепление ниже
Sub Lookup()
Dim rnge as Range
Dim cl As Range
Workbooks("Trackers 040620 PM.xlsx").Activate
Worksheets("Central").Activate
lastrow = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To lastrow
If Range("g" & i).Value = "Change" Then
srchval = Trim(Range("d" & i).Value)
chgval = Trim(Range("e" & i).Value)
Workbooks("Interim Inventory Tracker - All States 040620 v1.xlsx").Activate
Sheets("Main Data input").Activate
get_row_number = Workbooks("Interim Inventory Tracker - All States 040620 v1.xlsx"). _
Sheets("Main Data input").Range("D:D").Find( _
What:=srchval, _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=True _
).Row
If get_row_number = "" Then
'do nothing
Else
Workbooks("Interim Inventory Tracker - All States 040620 v1.xlsx").Activate
Sheets("Main Data input").Range("H" & get_row_number).Value = chgval
chgval = ""
End If
Workbooks("Trackers 040620 PM.xlsx").Activate
Worksheets("Central").Activate
End If
Next i
End Sub