< návrat zpět

MS Excel


Téma: Kopie oblasti buněk mezi sešity rss

Zaslal/a 21.12.2019 15:51

ZačátečníkDobrý den, mám dotaz proč funguje makro
Workbooks(zdrojSesit).Worksheets(zdrojList).Range("A1:AH122").Copy _
Workbooks(cilSesit).Worksheets(cilList).Range("A1")

a makro
Workbooks(zdrojSesit).Worksheets(zdrojList).Range(Cells(1, 1), Cells(122, 34)).Copy _
Workbooks(cilSesit).Worksheets(cilList).Range(Cells(1, 1))

skončí chybou 1004

Díky za nakopnutí definice.

Zaslat odpověď >

Strana:  1 2 3   další »
#045345
avatar
Příkaz "Range" v kombinaci s "Cells" se používá pouze pro definici oblasti.

Jinými slovy, když Range(Cells(1, 1)) zkrátíš na Cells(1, 1) tak by to mělo frčet.

P.citovat
#045346
Začátečník
Nefunguje, vrací stejnou chybu.
Problém je spíše s definicí oblasti odkud kopírovat
Range(Cells(1, 1), Cells(122, 34))Zřejmě se v tomto případě neobejdu "přepínání" mezi sešity a "klasickým" kopírováním 7
převádět to na Range("A1:AH122")se mi moc nechce.citovat
#045347
Stalker
A co takhle použít resize, místo toho fujtajblu.citovat
#045348
avatar
Workbooks(zdrojSesit).Worksheets(zdrojList).Range(Cells(1, 1), Cells(122, 34)).Copy _

Workbooks(cilSesit).Worksheets(cilList).Range("A1")

Ale toto funguje.citovat
#045350
Začátečník

Začátečník napsal/a:

Ale toto funguje.

Na jaké verzi? MO 2007 (12.0) vyhazuje chybu.

Bláhově jsem se domníval, že Range(Cells(1, 1), Cells(122, 34)) === Range("A1:AH122").citovat
#045351
Stalker

Začátečník napsal/a:

Bláhově jsem se domníval, že Range(Cells(1, 1), Cells(122, 34)) === Range("A1:AH122").


Range(Cells(1, 1), Cells(122, 34)).Select

Vybere jakou oblast?citovat
#045353
Začátečník

Stalker napsal/a:

...Vybere jakou oblast?

Po přepnutí na list správnou, ale ve spojení s objektem Workbooks().Worksheets() havaruje.

Už jsem se smířil s chybou v MSO2007 a s prostým Copy -> Pastecitovat
#045356
avatar
Toto funguje. Skús to aj s iným zošitom.
Sub Try_This()
Dim ws3 As Worksheet, ws2 As Worksheet
Set ws3 = Sheets("hárok1")
Set ws2 = Sheets("hárok2")
ws3.Range(ws3.Cells(1, 1), ws3.Cells(10, 5)).Copy ws2.Range(ws2.Cells(1, 1), ws2.Cells(10, 5))
End Sub

https://www.ozgrid.com/forum/index.php?thread/118668-copy-and-paste-using-range-cells-1-1-cells-1-7/citovat
#045357
Stalker

Začátečník napsal/a:

Už jsem se smířil s chybou v MSO2007 a s prostým Copy -> Paste


O Žádnou chybu se nejedná. Jde o to, že sešit a list ze kterého se provádí copy MUSÍ být vždy aktivní na cíli (Destination) nezáleží. Sešit do kterého se má kopírovat musí být samozřejmě otevřen.

Zápis musí být ve tvaru jaký uvádí marjankaj, protože Range(Cells(1,1)) je zhovadilost.citovat
#045358
avatar

Stalker napsal/a:

Zápis musí být ve tvaru jaký uvádí marjankaj, protože Range(Cells(1,1)) je zhovadilost.

No ja tento zápis používam a funguje. Má to využitie v cykloch. Iba v tomto prípade s COPY to nefunguje.

Funguje aj toto:
Sub Try_This()
Range(Sheets("hárok1").Cells(1, 1), Sheets("hárok1").Cells(10, 5)).Copy Range(Sheets("hárok2").Cells(1, 1), Sheets("hárok2").Cells(10, 5))
End Sub
citovat

Strana:  1 2 3   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