Marw napsal/a:
Dobry den mepexg a marjankaj, děkuji za pomoc, funguje tak jak potřebuju. Omlouvám se za přílohu typu obrázek, neuvědomil jsem si, že je jednoduší poslat přímo xls soubor z důvodu přepisování. Příště bych Vás prosil o upozornění,rád přílohu upravím tak, aby byla co nejvýhodnější. Ještě jednou díky. M.
mepexg napsal/a:
Nedám xlsx, lebo ani zadávateľ nemá tú potrebu a núti nás pred riešením opisovať zadanie, tak nech si opisuje aj riešenie.
A prečo nedávaš súbor *.xlsx?
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
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íš
Stalker napsal/a:
marjankaj napsal/a:Keď tak na to pozerám stačilo vyhodiť ten RANGE.
Workbooks(zdrojSesit).Worksheets(zdrojList).Range(Cells(1, 1), Cells(122, 34)).Copy _
Workbooks(cilSesit).Worksheets(cilList).Cells(1, 1)
Jak se to vezme.
Ano kód bude funkční, ale pouze za předpokladu, že zdrojový list bude aktivní.
Keď tak na to pozerám stačilo vyhodiť ten RANGE.
Workbooks(zdrojSesit).Worksheets(zdrojList).Range(Cells(1, 1), Cells(122, 34)).Copy _
Workbooks(cilSesit).Worksheets(cilList).Cells(1, 1)
Stalker napsal/a:
Pokud chci vybrat oblast dá se použít tento zápis Range(Cells(1, 1), Cells(122, 34)), i když bych spíše volil
Range("A1").Resize(122, 34)
nebo
Cells(1,1).Resize(122, 34)
Nebo si stojím na vedení?
Ono to prejde ale keď to spustíš z aktívneho hárku. Ale ak je aktívny cieľový hárok tak je chyba. Ku každému CELLS musíš zadať aj cestu.
Stalker napsal/a:
Zápis musí být ve tvaru jaký uvádí marjankaj, protože Range(Cells(1,1)) je zhovadilost.
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/
Workbooks(zdrojSesit).Worksheets(zdrojList).Range(Cells(1, 1), Cells(122, 34)).Copy _
Workbooks(cilSesit).Worksheets(cilList).Range("A1")
Ale toto funguje.
Zaujímavé čítanie.
Neviete o nejakom fóre, kde sa píše skutočne niečo o exceli?
djph napsal/a:
tady je to co potrebuji upravit (tedy to makro i s tabulkou)Příloha: 45328_statistiky.zip (19kB, staženo 1x)
skús toto.
Sub Makro1()
Static i As Long
i = i + 1
Range("B1:B51").Copy Range(Cells(1, i + 2), Cells(51, i + 2))
End Sub
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.