Я делаю что-то не так. Пожалуйста, помогите мне... СИТУАЦИЯ: получил две вкладки - Input_Tab и Database_Tab. Хотите обновить базу данных, используя входные данные. TAB INPUT: столбец Input_Tab A: имеет 60 строк заголовков (Staff_ID, Status, Staff_Name, Salary и т.д.) Столбец Input_Tab B: имеет соответствующие 60 строк значений (например, Emp001, Active, John Smith, $ 150k и т.д.) TAB базы данных: Database_Tab имеет 55 столбцов (не 60 и не в том же порядке, что и Input_Tab). Database_Tab Строка 1: имеет 55 заголовков. Строка Database_Tab 2-901: содержит 900 строк данных соответствующих сотрудников под каждым заголовком. ЦЕЛЬ: Используя два критерия (Staff_ID и Status, например, «Emp001» и «Active»), обновите Database_Tab, используя значения из Input_Tab. (Обычный Excel - это просто vlookup, но, конечно, нужен VBA для индивидуального обновления 900 сотрудников.)
Мой VBA ниже не работает ... Пожалуйста, помогите мне.
Sub UpdateRowData()
Sheets("Input").Activate
Dim staff_ID As String
Dim staff_status As String
Dim found_ID As Range
Dim found_status As Range
staff_ID = Sheets("Input").Range("B1").Select
staff_status = Sheets("Input").Range("B2").Select
Sheets("Database").Activate
Dim first_blank_row As Long
first_blank_row = Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).Row
starting_row = 1
Dim r As Long
r = starting_row
staff_ID = Sheets("Database").Range("a" & r).Value
staff_status = Sheets("Database").Range("b" & r).Value
Do While staff_ID <> 0
Set found_ID = Columns("a:a").Find(what:=staff_ID, LookIn:=xlValues, lookat:=xlWhole)
Set found_status = Columns("b:b").Find(what:=staff_status, LookIn:=xlValues, lookat:=xlWhole)
If (found_ID Is Nothing And found_status Is Nothing) Then
'<<<…Add new data at the end of Database.
For c = 1 To 500
Sheets("Database").Cells(first_blank_row, c) = Sheets("Input").Cells(r, c)
first_blank_row = first_blank_row + 1
Next c
Else
'<<<…else, update existing data.
For c = 1 To 500
Sheets("Database").Cells(found_ID.Row, c) = Sheets("Input").Cells(r, c)
Next c
End If
r = r + 1
Loop