Очень близко, я думаю, вы хотите это:
Таким образом, мы используем номер столбца, который вы нашли, а затем выбираем значение в последнем столбце для строки 4. Мы копируем значение в ячейку Q4. Cells(row, column)
Sub test()
Dim PSpark As Worksheet
Dim lc As Long
Set PSpark = Worksheets("ws1")
lc = PSpark.Cells(4, Columns.Count).End(xlToLeft).Column 'Gives us the last column number. If the value is in Column C, then we get lc = 3.
With PSpark
.Range("Q4") = .Cells(4, lc).Value 'Which row from column lc (which is the last column) we want to copy from
End With
End Sub