Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Excel: jak dostat proměnnou do makra pro název exportovaného souboru?

Mám tu makro na uložení nějakých dat do jiného souboru.

Sub TiskTXT()
Dim ArrZdroj
Dim Data As String
Dim i As Integer

With List1
    ArrZdroj = Array(Cells(17, 3).Value)
End With
Data = Join(ArrZdroj)

i = FreeFile
Open ThisWorkbook.Path & "(Cells(21, 3)Value)" & ".txt" For Output As #i

Print #i, Data,
Close #i

End Sub

Má se vytvořit soubor *txt a do něj zapsat obsah buňky C17. To se děje.
Chtěl bych to ale vylepšit tak, aby název toho *txt souboru byl podle obsahu buňky C21. Pokusil jsem se to tam nějak narvat, ale evidentně špatně, soubor se pak jmenuje "(Cells(21, 3)Value).txt". V buňce C21 (tedy 21,3) je různé číslo, mění se podle dat *xlsm
Pokud bude v C21 "12345", měl by být název souboru "12345.txt".

Jak upravit řádek

Open ThisWorkbook.Path & "(Cells(21, 3)Value)" & ".txt" For Output As #i

aby to fungovalo?

Díky
Změna předmětu, původně: Excel: jak dostat proměnnou do makra? (L-Core)

Řešení:

Předmět Autor Datum
Do úvodzoviek sa dáva reťazec, takže tu by nemali byť: Open ThisWorkbook.Path & Cells(21, 3).Value…
los 06.12.2019 16:58
los
Díky, funguje.
L-Core 06.12.2019 17:00
L-Core
Aha, tak to funguje jen v rootu disku. Jinak to do názvu přidává i název adresáře, což nechci. A sou…
L-Core 06.12.2019 17:41
L-Core
Open ThisWorkbook.Path & "\" & Range("c21") & ".csv" For Output As #i
robert13 06.12.2019 18:55
robert13
Jo, to je ono. Díky. poslední
L-Core 06.12.2019 19:30
L-Core

Do úvodzoviek sa dáva reťazec, takže tu by nemali byť:

Open ThisWorkbook.Path & Cells(21, 3).Value & ".txt" For Output As #i

Kvôli čitateľnosti je lepšie použiť Range, pri čítaní hodnoty nie je potrebné použiť Value, takže:

Open ThisWorkbook.Path & Range("C21") & ".txt" For Output As #i

Netestované.

Zpět do poradny Odpovědět na původní otázku Nahoru