< návrat zpět

MS Excel


Téma: vlookup z jiného listu rss

Zaslal/a 20.9.2022 11:12

Hezký den,
úvodem-jsem velmi nepravidelný uživatel VBA.
Do jednoho sešitu bych chtěl vkládat data z jiného.
Dosud jsem občas použil funkci svyhledat vloženou v buňce, ale sešit se moc nafukuje. Takže bych chtěl změnu a vkládat jen data.
Funguje mi vložení vzorce přes VBA:
List1.Cells(a_bunka_r, c_sn) = "=VLOOKUP(b" & a_bunka_r & ",'J:\cesta\nazev_souboru.xlsx'!DATA,21,FALSE)"
, ale nedaří se mi změnit zápis tak, aby se vkládaly jen hodnoty. Podle různých návodů jsem dělal pokusy, ale téměř vždy končím na nesprávné syntaxi.
Např.: Application.WorksheetFunction.VLookup(Range("b" & a_bunka_r), Workbooks(cesta).Sheets("NazevListu").Range("DATA"), 21, False)
Mohl by mi někdo poradit? Děkuji

Zaslat odpověď >

#053449
elninoslov
"vlookup z jiného listu" - tým myslíte z iného zošitu, áno? A zatvoreného?
Príloha?
Sub pokus()
Dim a_bunka_r As Long, c_sn As Long
Dim subor As String, cesta As String, lst As String

a_bunka_r = 4
c_sn = 3
subor = "PokusSubor.xlsx"
cesta = "e:\Download\"
lst = "DATA"

With List1.Cells(a_bunka_r, c_sn)
.Formula = "=VLOOKUP(B" & a_bunka_r & ",'" & cesta & "[" & subor & "]" & lst & "'!B2:Z20,21,FALSE)"
.Value = .Value
End With
End Sub
citovat
#053451
avatar
Ano, jedná se o jiný sešit, špatně jsem se vyjádřil. A ano, je uzavřený, souběžně může být otevřený někým jiným. Počítám, že ho budu před funkcí otevírat pro čtení, a pak zase zavírat.

Vyzkouším Váš postup a dám ještě vědět. Vypadá to super.
Děkujicitovat
#053453
avatar
Funguje to správně. Soubor není potřeba otevírat, pouze z něj čtu.
Měl bych ještě prosbu, nepoužívám definici oblasti pro vyhlední pomocí souřadnic, ale mám ji pojmenovanou (název DATA není název listu, ale název oblasti s daty).
Můžete mi ještě poradit, jak upravit tuto část?
... & lst & "'!B2:Z20, ...
Název listu mi nevadí (ikdyž je pak asi zbytečný), ale náhrada B2:Z20 za proměnnou se mi nedaří - opět asi problém se syntaxí.

Moc děkujicitovat
#053454
elninoslov
Sub pokus()
Dim a_bunka_r As Long, c_sn As Long
Dim subor As String, cesta As String, oblast As String

a_bunka_r = 4
c_sn = 3
subor = "PokusSubor.xlsx"
cesta = "e:\Download\"
oblast = "DATA"

With List1.Cells(a_bunka_r, c_sn)
.Formula = "=VLOOKUP(B" & a_bunka_r & ",'" & cesta & subor & "'!" & oblast & ",21,FALSE)"
.Value = .Value
End With
End Sub
citovat
#053455
avatar
Funguje správně.
Moc děkujicitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

export xls - konkrétní sloupce a pořadí

Alfan • 30.9. 15:11

open book

elninoslov • 30.9. 13:36

Podmíněné formátování - kopírování

elninoslov • 30.9. 13:30

export xls - konkrétní sloupce a pořadí

elninoslov • 30.9. 13:17

spustit makro změnou hodnoty v buňce a svyhledat

PavDD • 30.9. 10:10

Podmíněné formátování - kopírování

mikar • 30.9. 9:58

open book

PavDD • 30.9. 9:23