Toto bude rýchlejšie ako GetObject. Vytvorí si to dočasne definovaný názov, vypočíta, zmaže:
Sub Test2()
Dim Subor As String, Cesta As String, List As String, Stlpec As String, Posledny As Long
Cesta = "Z:\"
Subor = "Dostupnost.xlsx"
List = "Ověření"
Stlpec = "$B:$B"
With ThisWorkbook
On Error Resume Next
.Names("POSLEDNY_R").Delete
On Error GoTo 0
.Names.Add "POSLEDNY_R", "=LOOKUP(2,1/('" & Cesta & "[" & Subor & "]" & List & "'!" & Stlpec & "<>""""),ROW($A:$A))"
Posledny = ExecuteExcel4Macro("'" & .FullName & "'!" & "POSLEDNY_R")
.Names("POSLEDNY_R").Delete
End With
MsgBox Posledny
End Sub
a nemôžem zabudnúť na moje obľúbené "dolovanie dát" cez vzorec vložený do určenej bunky, prečítaný a zmazaný (to bude asi ešte rýchlejšie):
Sub Test3()
Dim Subor As String, Cesta As String, List As String, Stlpec As String, Posledny As Long
Cesta = "Z:\"
Subor = "Dostupnost.xlsx"
List = "Ověření"
Stlpec = "$B:$B"
With ThisWorkbook.ActiveSheet.Range("A1")
.Formula = "=LOOKUP(2,1/('" & Cesta & "[" & Subor & "]" & List & "'!" & Stlpec & "<>""""),ROW($A:$A))"
Posledny = .Value
.Clear
End With
MsgBox Posledny
End Subcitovat