Я новичок в VBA и работаю с ним почти год.То, что я пытаюсь выполнить, основано на выборе из выпадающего списка где-то на рабочем листе, он изменяет данные в столбце B с имен на имена входа на основе vlookup.Я продолжаю получать сообщение об ошибке «требуется объект», так что я предполагаю, что это означает, что я не объявил какой-либо результат vlookup как нечто.
Он отлично работает с s = 3
, поэтому я предполагаю, что он как-то связан с циклом For, которому не нравятся данные, которые я пытаюсь пройти через него.
sub show_by_login()
'first row that is evaluated is in row 5
Dim s As Long
s = Sheets("Sheet1").Range("H17").Value
If s = 1 Then
Exit Sub
ElseIf s = 2 Then
Dim LastRow As Long
LastRow = Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Row
Dim i As Double
For i = 2 To LastRow
Dim str As Double
str = Sheets("Sheets2").Cells(i + 3, 1).Value
Cells(i + 3, 2) = Application.VLookup(str, Sheets("Roster").Range("A:C"), 2, False).Value
Next i
ElseIf s = 3 Then
i = 5
Sheets("Sheet2").Range("B" & i).Value = Application.WorksheetFunction.VLookup(Sheets("Sheet2").Range("A" & i), Sheets("Roster").Range("A:C"), 2, False)
End If
End Sub