

Excel: kopírování vybraných dat do *xml souboru
Vlastně to tak trochu navazuje na mé dřívější dotazy/pokusy. Tohle je finále :)
Mám v *xlsm sešitu list s výsledky, které jsou výhradně ve sloupci A, v řádcích 1-x, bez vynechání. Počet řádků je proměnlivý, od cca 5 klidně po 500.
Makro pro označení oblasti je jednoduché
Sub Oblast_XML()
Cells(300, 1).End(xlUp).Offset(0, 0).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.Copy
End Sub
Tuto vybranou oblast (pokaždé různě velkou) potřebuji nakopírovat do (makrem vytvořeného *xml souboru).
Ten název souboru mám pořešen, viz https://pc.poradna.net/questions/2962434-excel-jak-dostat-promennou-do-makra-pro-nazev-exportovaneho-souboru
Zbývá mi nějak vyřešit to samotné kopírování. V příkladu z předchozího odkazu (viz dále) jsem kopíroval vždy obsah buňky C17. Teď to bude A1 až A??, prostě ta vybraná pokaždé jinak "dlouhá" oblast. Název *xml souboru je v buňce C21.
Nástřel (řádek Data = ... pochopitelně nefunguje!):
Sub Tisk_XML()
Dim Data As String
Dim i As Integer
Data = Join(Application(List1.Range("A1:A??").Value))
i = FreeFile
Open ThisWorkbook.Path & "\" & Range("c21") & ".csv" For Output As #i
Print #i, Data,
Close #i
End Sub
Potřebuji nějak upravit tu oblast dat. Něco jako (vím, je to blbě) jsem tam naznačil, Data = Join(Application(List1.Range("A1:A??").Value))
Mohl bych tam možná nějak zapojit "pojmenovanou oblast", kdyby to první makro pokračovalo (v konkrétním případě bylo vybráno 13 řádků)
ActiveWorkbook.Names.Add Name:="oblast", RefersToR1C1:="=List1!R1C1:R13C1"
ActiveWorkbook.Names("oblast").Comment = ""
Ale neporadím si právě s tím proměnlivým počtem řádků. Ale tohle je možná zbytečný mezikrok, klíčové bude specifikovat (proměnlivou velikost oblasti) Data v tom druhém makru.
Jak na to?
Díky za tipy.
...já vím, poněkud přeexcelováno z mé strany...