toto bude nadlhsie ked to chces vysvetlit :)))))
takze:
MyFile = FileSystem.Dir(Application.ThisWorkbook.Path
& "\XLS\" & "*.*")
Do While MyFile <> ""
ReDim Preserve c(x)
c(x) = MyFile
MyFile = FileSystem.Dir
x = x + 1
Loop
1. zaznamena cestu k prvemu suboru v adresari
2. do while cyklus: cykluje subory v adresaroch az kym nebude zaidny
3. pre cyklovani sa redimenzuje pole pri zachovani hodnot a zapise aktualny nazov donho
ok teraz k tvojej otazke:
- zapisal si si do pola p1() nazvi suborov
- ale v cykle si udal uz len ze pre 2 subory co ked ich budes mat 15 alebo 20 alebo 0???
preto sa pouziva zapis
For x = LBound(p1) To UBound(p1)
next
- LBound je minimalna hodnoto pola
- UBound je maximalna hodnota pola
ted k otvaraniu suborov:
nato potrebujes spravnej object zadefinovat tj. ze je to excel :P
Dim xlApp As New Excel.Application
a potom len otvoris subor:
xlApp.Workbooks.Open (Application.ThisWorkbook.Path & "\XLS\" & c(x))
- v zatvorke je priama cesta k suboru
tento zapis v nej:
Application.ThisWorkbook.Path
- da cestu k makru
- a potom sme len dopisali k tej ceste adresar XLS a meno suboru c(x)
ked uz ho mas otvoreny a chces s nim nieco robit staci pouzivat klasicke excel prikazi len pred nimi musi byt zapisane
xlApp.NIECO
po ukonceni sa musi zatvorit lebo ked budes cyklovat otvaranie tychto suborov tak sa nezavru .. aj ked ich nevidis to neznamena ze niesu otvorene preto treba zapisat:
xlApp.Workbooks(c(x)).Close
pracu s array polom uz hadam popisat nemusim nie???
ked to nebudes chapat napis ze tomu nerozumies a ja to spracvim za teba :))))))) ... viem vysvetlovat dobre neviem
citovat