< návrat zpět

MS Excel


Téma: Uložení neaktivního listu do xlsx (makro) rss

Zaslal/a 10.10.2022 11:18

Poradíte mi prosím s makrem pro uložení neaktivního listu do klasického xlsx? Našel jsem tohle, ale to je jen pro aktivní list.

Sub SaveSheet()
ActiveSheet.Copy
With ActiveSheet.UsedRange
.Copy
.PasteSpecial xlValues
.PasteSpecial xlFormats
End With
Application.CutCopyMode = False
ActiveWorkbook.SaveAs "C:\Users\JB\Desktop\novy.xlsx"
End Sub

Děkuji za ochotu.

Zaslat odpověď >

Strana:  1 2   další »
#053574
avatar
Tak už jsem něco našel a funguje.

Sub sb_Copy_Save_Worksheet_As_Workbook()
Dim wb As Workbook
Set wb = Workbooks.Add
ThisWorkbook.Sheets("Sheet1").Copy Before:=wb.Sheets(1)
wb.SaveAs "C:temptest1.xlsx"
End Subcitovat
#053575
elninoslov
Sub SaveSheet()
ThisWorkbook.Worksheets("Hárok3").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Value = .Value
End With
Application.DisplayAlerts = False
.SaveAs "e:\Download\novy.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
End Sub
citovat
#053590
avatar
Elninoslave, perfektní. Funguje mnohem líp, než to, co jsem našel. Jen jediná věc mi dělá problémy.Vzhledem k tomu, že mám v tom exportovaném sešitu roztažené funkce i na řádky, kde se nic nenačítá a jsou prázné, tak to sice vyexportuje bez hodnot, ale při načítání toho excelu do shopu to hlásí nevyplněné hodnoty přesně do té pozice, kam jsem to roztáhl. Netuším, kde je chyba.citovat
#053592
elninoslov
Ktorý stĺpec je určujúci pre zistenie, v ktorom riadku dáta končia?
Za to
.Value = .Value
pridajte dočasne tento riadok, ale s tým, že to "A" nahraďte tým určujúcim stĺpcom
MsgBox .Address(0, 0) & vbNewLine & .Resize(.Parent.Cells(Rows.Count, "A").End(xlUp).Row).Address(0, 0)
výsledok mi napíšte.citovat
#053593
avatar
Děkuji, ale moc nerozumím, co má být v tomto případě oddělující sloupec.citovat
#053594
elninoslov
Aký "oddělující sloupec" ? Ja píšem "Ktorý stĺpec je určujúci". Podľa ktorého sa dá určiť, podľa ktorého sa dá zistiť počet riadkov dát. Lebo to, že v bunke "nič" nie je neznamená, že je prázdna. A vzorcami sa často vpisuje do buniek "", to ale nie je prázdna nepoužitá bunka. Takže tie Vaše vzorce sú UsedRange - použitá oblasť. Preto sa pýtam, podľa ktorého stĺpca Vašich dát, sa dá určiť, ktorý riadok je posledný. Ako sa mám pre Boha inak opýtať?citovat
#053595
avatar
Tak to se potom omlouvám. Zcela určitě podle sloupce A, tam je vždy hodnota (kód produktu).citovat
#053596
avatar
Vložil jsem tedy tohle
MsgBox .Address(0, 0) & vbNewLine & .Resize(.Parent.Cells(Rows.Count, "A").End(xlUp).Row).Address(0, 0)
pod
.Value = .Value, ale výsledek je stejný. Při importu to hlásí nevyplněné buňky do řádku 100.citovat
#053597
elninoslov
To je iba správa MsgBox. To čo sa píše v tej správe som chcel vedieť. Uvádza adresu použitej oblasti vs. adresu vypočítanej oblasti podľa určujúceho stĺpca. Teda od Vás chcem, aby ste mi napísal toto:
Napísalo mi to toto:
A1:G105
A1:G86

Ja Vám tam potom doplním kód o zmazanie prípadnej prebytočnej časti na konci, ktorá spôsobuje načítanie "prázdnych" riadkov.citovat
#053598
avatar
Dobře.
A1:TH100
A1:TH11citovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje