У меня есть основная таблица, которую мне нужно, чтобы клиенты могли обновлять, используя рабочий лист, где они будут редактировать столбцы «статус», «заметки» и «дата» для каждой цели, которую они установили, а затем нажмите кнопку, чтобы обновить основную таблицу.
Как в основной таблице, так и в таблице есть значение целевого идентификатора, которое я намеревался использовать для сопоставления. Я хотел бы иметь возможность зацикливаться на базе данных master и выяснять, есть ли соответствующий идентификатор цели в таблице «update», и если это необходимо, мне нужно обновить три столбца в таблице master из соответствующей строки в «update» " Таблица. Я пытался написать этот цикл в VBA, но я застрял на правильном коде (я очень плохо знаком с VBA).
Вот код, который у меня есть:
Sub Button4_Click()
Dim i As Integer
Dim tbl As ListObject
Set tbl = Sheets("Master").ListObjects("MasterTable")
For i = 2 To tbl.Range.Rows.Count
If Sheets("Master").Cells(i, 1) = Sheets("Data Update").Cells(i, 1) Then
Range(Sheets("Data Update").Cells(i, 9), Sheets("Data Update").Cells(i, 11)).Copy
Range(Sheets("Master").Cells(i, 9), Sheets("Master").Cells(i, 11)).PasteSpecial xlPasteValues
ElseIf Sheets("Master").Cells(i + 1, 1) = Sheets("Data Update").Cells(i, 1) Then
Range(Sheets("Data Update").Cells(i, 9), Sheets("Data Update").Cells(i, 11)).Copy
Range(Sheets("Master").Cells(i, 9), Sheets("Master").Cells(i, 11)).PasteSpecial xlPasteValues
End If
Next i
End Sub
Работает только в том случае, если идентификатор цели в таблице «update» находится в той же строке, что и идентификатор цели в таблице «master». Таким образом, если идентификатор цели № 1 находится в строке 1 в обеих таблицах, он будет совпадать, если идентификатор цели № 2 находится в строке 2 в обеих таблицах, он будет совпадать и т. Д. Но он не найдет идентификатор цели, если он не в порядке и это остановит целевые идентификаторы не в последовательном порядке