< návrat zpět

MS Excel


Téma: Range (xx) = range(yy) rss

Zaslal/a 8.6.2011 12:20

Zdravím,
potřebocval bych poradit. Mám makro pracující s 2 dokumenty. Najde v záhlaví tabulky číslo sloupce a zkopíruje data ze sloupce do prvního dokumentu do stejného sloupce. Vše funguje, pokud používám copy a paste. Chtěl bych však jednoduše napsat že range = range, ale nefunguje mi to. Přitom když jsem na zkoušku napsal Range(Cells(1, 1), Cells(3, 3)) = Range(Cells(4, 4), Cells(6, 6)).Value
tak makro funguje. Když ale použiji skutečné adresy co potřebuji a napíšu kód Workbooks(CIL).Worksheets(listcil).Range(Cells(spodniradekcil, i), Cells(spodniradekcil + spodniradekzdroje - 2, i)) = Workbooks(ZDROJ).Worksheets(listzdr).Range(Cells(2, sloupec), Cells(spodniradekzdroje, sloupec)).Value

tak makro nefunguje. Vážne nevím kde může být zádrhel. Už se s tím peru 2 dny.

Zaslat odpověď >

#005208
avatar
Já osobně nastavení Range(Cells(1, 1), Cells(3, 3)) velmi nerad používám, je sice jednoduché ale offset je skoro stejný, ale má velkou nevýhodu platí jen na aktivním listu, v popisu je taková malá noticka, co se snadno přehledne a jiného to nenapadne. Je to stejné jako zadání objektu např List1!A1 pokud nejsi na Listu1 objekt se nepřiřadí (alespoň to je má zkušenost). Pokud chceš použít tebou uvedenou notaci musíš být na aktivním listu tak jak je např. paste a zadat

a = Range(Cells(1, 1), Cells(3, 3)).Address
b = Range(Cells(4, 4), Cells(6, 6)).Address
Sheets(2).Range(a) = Sheets(1).Range(b).Value
Sheets(1).Range(b).Copy Sheets(2).Range(a)

lepší je použít copy stačí levá horní buňka a nevím to jsem netestoval, zda nejsou problémy s = mezi sešitama, když to otestuješ napišcitovat

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