Могу предложить не очень быстрый, но рабочий вариант: заполните все необходимые поля через Проверку данных на листе, который я Вам создал (как сделано в ячейке G18). Предполагаю, что в вашем листе установлено какое-то страшное свойство, которое не даёт значениям из выпадающего списка отображаться
Sub f()
Dim sh As Worksheet
For Each sh In Sheets
If sh.Name <> ActiveSheet.Name And sh.Name <> Range("D7") Then
sh.Visible = xlSheetHidden
Else: sh.Visible = xlSheetVisible
End If
Next
End Sub
Sub макрос1()
Dim LastRow As Long, LastRow1 As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
For i = 3 To LastRow
If Cells(i, 1) = Cells(2, 16) Then
Cells(Cells(i, 2).End(xlDown).Row + 1, 2) = Cells(2, 17)
End If
Next
End Sub
Без формулы массива можно использовать следующую формулу (если данные в стоблце A): =LOOKUP(2;1/(A:A>0);A:A) =ПРОСМОТР(2;1/(A:A>0);A:A) Если есть отрицательные значения, то можно использовать следующую формулу: =LOOKUP(2;1/(A:A<>0);A:A) =ПРОСМОТР(2;1/(A:A<>0);A:A)