Ahoj, díky za reakci a zformulování otázky a odkaz.
Jak bude chvíle času tak se v tom pošťourám.
Jak už sem psal, jedná se pouze o zvědavost. Vlasně sem to neviděl nikde, ať už se jedná ofóra o VBA či knihy českých nebo zahraničních autorů (walkenbach).
Včera sem procházel jednu z jeho knih a toto "(neviem posudit, nie som si isty, nakolko viac bodiek v kode by teoreticky malo kod spomalit)" tam právě zmiňuje a nabádá k použití WITH...END WITH.
Takže máš pravdu!
Jiri-Harazim napsal/a:
Milý Stalkere. Poslechl jsem tě a v klidu jsem se nadechl. Jsi nejspíše velký znalec a jinými "pitomci" pohrdáš. Měj se hezky a zamysli se nad sebou.
Všechno jde, když se chce. Pokud chceš radu, tak se v klidu nadechni, přečti si po sobě co jsi napsal a zkus to znovu s přiložením vhodného vzorového souboru.
Ahoj, nenám žádný problém k řešení, jen spíše ze zvědavosti. Narazil sem na youtube na video o fci dir ve VBA.
Co mě upoutalo, byl zápis
FileName = VBA.FileSystem.Dir("C:\Users\..........")
If FileName = VBA.Constants.vbNullString Then
Vždiť pro stejnou funkčnost stačí:
FileName = Dir("C:\Users\..........")
If FileName = vbNullString Then
Používáte někdo tento způsob zápisu, nebo pužíval? Na zdejším fóru sem na nic takového nenarazil, a ani několik knih o VBA, které tu mám níc takového neuvádějí.
Má vůbec takovýto zápis nějaký benefit např. rychlost?
Zkoušel sem googlit, ale nic kloudného sem nenašel Možná jen neumím formulovat otázku.
Díky za Vaše poznatky
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.
marjankaj napsal/a:
RESIZE je zbytočné. A je jedno ktorý list bude aktívny.
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)
marjankaj napsal/a:
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í?
A skúšal si to? Tiež by to malo hodiť chybu.
Začátečník napsal/a:
náhradou Range("A1:AH122") za Range(Cells(1,1),Cells(122,34))) zhavaruje?
Range(Cells(1,1)) není až taková zhovadilost, ale souhlasím, postačuje Cells(1,1)
marjankaj napsal/a:
No ja tento zápis používam a funguje. Má to využitie v cykloch. Iba v tomto prípade s COPY to nefunguje.
Začátečník napsal/a:
Už jsem se smířil s chybou v MSO2007 a s prostým Copy -> Paste
Začátečník napsal/a:
Bláhově jsem se domníval, že Range(Cells(1, 1), Cells(122, 34)) === Range("A1:AH122").
A co takhle použít resize, místo toho fujtajblu.
???
https://www.youtube.com/watch?v=tGY70sdpaLc
https://www.youtube.com/watch?v=faPSXNkU1Y0
Jaj, sorry. Tu interpunkci v názvu makra sem vůbec nezaznamenal, moje chyba. Jak už tu zaznělo do kódu něco takového nepatří, což sis sám ověřil v praxi.
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.