Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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... :-p

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny