Итак, у меня есть две формы в листе EmployeeForm
(EmployeeForm1 & EmployeeForm2) и таблица Excel TableEmployee
в листе EmployeeData
, которая выглядит следующим образом:
Данные в таблице получены из этих двух форм, но до сих пор мне удалось ввести только первую половину таблицы.
Данные в Employee Form 2
передаются только и только после отправки Employee Form 1
(могут быть дни, даже недели).
Теперь я хочу добитьсярабочий код VBA, который может соответствовать Employee ID
в ячейке D13 и Employee ID
в столбце H, и записать данные в D14: D17 в нужное место.
Таким образом, в приведенном выше примере, поскольку Employee ID
равно 145, после нажатия кнопки отправки в форме 2 данные в D14: D17 должны быть сохранены в L7: O7.
Это мой код:
Sub Submit_Form1()
Dim LastRow As Long, ws As Worksheet
Set ws = Worksheets("EmployeeData")
LastRow = ws.Range("H" & Rows.Count).End(xlUp).Row + 1
ws.Range("H" & LastRow).Value = Worksheets("EmployeeForm").Range("D5").Value 'Employee ID
ws.Range("I" & LastRow).Value = Worksheets("EmployeeForm").Range("D6").Value 'Employee Name
ws.Range("J" & LastRow).Value = Worksheets("EmployeeForm").Range("D7").Value 'Place of Birth
ws.Range("K" & LastRow).Value = Worksheets("EmployeeForm").Range("D8").Value 'Working Experience
End Sub
И для формы 2
Sub Submit_Form2()
Dim LastRow As Long, ws As Worksheet
Dim H As String
Set ws = Worksheets("EmployeeData")
employeeid = Sheets("EmployeeForm").Range("D13").Value
If Cells(H) = employeeid Then
ws.Range("L" & LastRow).Value = Worksheets("EmployeeForm").Range("D14").Value 'Education
ws.Range("M" & LastRow).Value = Worksheets("EmployeeForm").Range("D15").Value 'Last Company
ws.Range("N" & LastRow).Value = Worksheets("EmployeeForm").Range("D16").Value 'Join Date
ws.Range("O" & LastRow).Value = Worksheets("EmployeeForm").Range("D17").Value 'Position
End Sub
Конечно, второй макрос не работает, но кто-нибудь может, пожалуйста, просветить меня, как это сделатьправильно?Большое спасибо!