Отправка данных текстового поля в определенную строку / ячейку на рабочем листе на основе значения поля со списком - PullRequest
1 голос
/ 11 октября 2019

Я создал пользовательскую форму, которая собирает данные о том, сколько времени требуется работнику, чтобы выполнить работу.

Я создал вторую форму, чтобы найти ссылку и указать время, когда он / она закончили работу.

Я могу отправить все данные из первой формы на рабочий лист 'Tracker', а также найти 'Job Reference', чтобы заполнить данные во второй пользовательской форме. Однако я не могу отправить «Время окончания» в строку, связанную с идентификатором «Задание на работу».

Я пытался использовать тот же код, который я использовал, чтобы найти пустую строку и вставить данные в первую форму, но она вводит время окончания в следующую пустую строку.

enter image description here

Private Sub CommandButton1_Click()

endTimeTxt.Value = Time

End Sub

Private Sub CommandButton2_Click()

Application.ScreenUpdating = False

    'Defines worksheet and Database Var
Dim findRng As Range
Dim lookup As String
lookup = Trim(Application.InputBox("What ID do you want to find?"))
Set findRng = Range("G5:G1000").Find(what:=lookup)

If Not findRng Is Nothing Then
    Debug.Print "The row to use is: " & findRng.Row
Else
    MsgBox (lookup & "was not found in column A!")
End If

Application.ScreenUpdating = True
End Sub

Private Sub UserForm_Initialize()
Dim xRg As Range
    Set xRg = Worksheets("Lists ").Range("I2:P21")
    Me.jobRefCbo.List = xRg.Columns(1).Value
End Sub

Private Sub jobRefCbo_Change()

    'Formatting Issue
    jobCloseFrm.date2Txt.Value = Format(Range("W1").Value, "dd/mm/yyyy")
        Me.nameTxt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 2, False)
        Me.jobDesc2Txt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 3, False)
        'Me.date2Txt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 4, False)
        Me.month2Txt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 5, False)
        Me.timeOnJobTxt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 6, False)
        Me.StatusTxt.Value = Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 7, False)
        Me.startTime2Txt.Value = Format(CDate(Application.WorksheetFunction.VLookup(CDbl(Me.jobRefCbo.Value), Worksheets("Lists ").Range("I2:P21"), 8, False)), "hh:mm:ss AM/PM")

End Sub

Я был на грани попытки кода, я погуглил, поэтомуКод для отправки Time End не имеет особого смысла.

1 Ответ

0 голосов
/ 11 октября 2019

Вообще говоря, что-то вроде этого

'in click event

Dim findRng As Range

Set findRng = Range("A5:A1000").Find(what:=Me.combobox1.Value) 'insert name of combobox here

If Not findRng Is Nothing Then
    Cells(findRng.Row, 9).Value = Me.textbox1.Value            'insert name of textbox here
End If
...