< 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:  « předchozí  1 2 3
#045369
avatar

Stalker napsal/a:

marjankaj napsal/a:RESIZE je zbytočné. A je jedno ktorý list bude aktívny.
Otestuj si přiložené soubory a uvidíš

To je tak, keď máš zlé makro.
Písal som, že tam má byť cesta
Sub b()
Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Range(Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(1, 1), Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(122, 34)).Copy _
Workbooks("cilSesit.xlsx").Worksheets("cilList").Cells(1, 1)
End Sub

Vyskúšaj toto.citovat
#045370
Stalker

marjankaj napsal/a:

Stalker napsal/a:marjankaj napsal/a:RESIZE je zbytočné. A je jedno ktorý list bude aktívny.
Otestuj si přiložené soubory a uvidíš
To je tak, keď máš zlé makro.
Písal som, že tam má byť cesta
Sub b()
Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Range(Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(1, 1), Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(122, 34)).Copy _
Workbooks("cilSesit.xlsx").Worksheets("cilList").Cells(1, 1)
End Sub
Vyskúšaj toto.


OK máš pravdu, funguje naprosto stejně jako s RESIZE !

Ale teď mi řekni v čem je tento zápis lepší
Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Range(Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(1, 1), Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(122, 34)).Copy _
Než použití resize ?
Workbooks("zdrojSesit.xlsm").Worksheets("zdrojList").Cells(1, 1).Resize(122, 34).Copy _

Ono to s délkou kódu není jako s penisem, čím delší tím lepší. 2

Prostě způsob zápisu s využitím resize je pro moji osobu daleko čitelnější a jednodušší jak k zápisu, tak k případné editaci.

Vše teď záleží na tazateli, jakou formu zápisu si zvolí.citovat
#045371
avatar
Máš pravdu S RESIZE je to kratšie. Mne išlo o tú chybu. Ak pred CELLS(alebo RANGE) nie je cesta, tak sa uvažuje s ACTIVESHEET.
RANGE je čitateľnejšie, CELLS sa viac hodí do cyklov. Ak robíš len na jednom liste tak nič neriešiš. Na viac listoch si musíš dávať pozor.
Malo by to ísť aj s WITH, ale už to nebudem ďalej rozoberať.
Ospravedlňujem sa, máš pravdu. Ja som sa sústredil na druhú časť(cieľ) a ty si zase hovoril o zdroji.

Dal som aj to s WITH len s hárkami.
Sub Makro1()
With Sheets("zdroj")
.Range(.Cells(1, 1), .Cells(10, 5)).Copy Sheets("ciel").Cells(1, 1)
End With
End Sub
citovat
#045437
avatar
Chlapi, moc díky.
Zrovna jsem řešil podobný problém (načíst oblast z jiného než aktivího listu) a furt chyba. Až jsem si vzpoměl, že se tu nedávno něco řešilo a hurá, už to funguje:

With Worksheets("Data")
Set Oblast = .Range(.Cells(c.Row, 3), .Cells(c.Row + pocet - 1, 15))
End With
citovat
#045438
elninoslov
Set Oblast = Worksheets("Data").Cells(c.Row, 3).Resize(pocet, 13)citovat
#045439
avatar
Aha, "resize" je lepší.
Dík.citovat

Strana:  « předchozí  1 2 3

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:49

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 10:47

Relativní cesta - zdroje Power Query

Alfan • 25.4. 10:40