Citat:
vojvoda1010:Da li path je folder ili excel dokument?
Teško je raditi kada čovjek nije ovladao osnovama.
Laički rečeno,
Path staza ili "putanja" je smjernica programu da "zna" gdje će potražiti lokaciju u kojoj se nalaze specifične datoteke ili u koju će snimiti određene datoteke. npr: (C:\Temp)
U attach ZIP datoteci nalazi se nekoliko XLS datoteka. Kada je raspakiraš na C particiju dobit ćeš dva foldera
- C:\Temp
- C:\Tmp
U prvom folderu nalaze se datoteke iz kojih kopiraš svaki Sheet1 u master.xls
U drugom folderu nalazi se master.xls datoteka u koju kopiraš sve Sheet1 iz navedenih datoteka sa lokacije ili "
Path" C:\Temp
Nakon što raspakiraš ove foldere otvori workbook master.xls iz foldera "Tmp". Nakon pokretanja VBA makronaredbe, Excel će kopirati svaki Sheet1 iz svih datoteka *.xls koje se nalaze u folderu "Temp"
Dakle otvorit će svaku datoteku/kopirati Sheet1/zatvoriti datoteku.
Ovdje je važno da datoteka master.xls nije u istom folderu kao i datoteka iz kojih povlačiš radne listove (Sheet1)
VBA code koji je korišten je slijedeći (nalazi se u Module1 datoteke master.xls)
Da se razumijemo, ja vjerujem da postoji jednostavniji i bolji/brži VBA code ali ovo je od mene dovoljno. Na netu ima puno primjera
Code:
Option Explicit
Sub KopirajSheet1IzDatoteka()
Dim myDir As String, fn As String
myDir = "C:\Temp" 'path staza ili putanja do lokacije foldera u kojem se nalaze datoteke
fn = Dir(myDir & "\*.xls") 'extenzija za datoteke iz kojih se kopiraju Sheets
Do While fn <> ""
With Workbooks.Open(myDir & "\" & fn)
With .Sheets("Sheet1") 'Sheet koji se zeli kopirati iz datoteka
.Name = "" & fn & "" 'naziv kopiranog sheeta je tipa ime.xls
'.Name = "(" & fn & ")" 'naziv kopiranog sheeta je tipa (ime.xls)
'.Name = .Name & "(" & fn & ")" 'naziv sheeta je tipa Sheet1(ime.xls)
.Copy After:=ThisWorkbook.Sheets(1)
End With
.Close False
End With
fn = Dir
Loop
End Sub
BTW: Ako uopće možeš, prakticiraj da postaviš primjer što i kako radiš (ovako je ponekada teško uopće razumjeti što želiš?)
Pogledaj kako ja tebi postavim primjere. To govorim zbog tebe, prije će ti netko pomoći ako ima smislen primjer nego dešifrirtati tvoje pitanje (bez uvrede).
Također pogledaj
Copy sheets in every open workbook to a master workbook
Citat:
This macro copies all sheets in all open workbooks to a master workbook.
Code:
Sub CopySheetsToMasterWorkbook()
Dim WBN As Workbook, WB As Workbook
Dim SHT As Worksheet
Set WBN = Workbooks.Add
For Each WB In Application.Workbooks
If WB.Name <> WBN.Name Then
For Each SHT In WB.Worksheets
SHT.Copy After:=WBN.Sheets(WBN.Worksheets.Count)
Next SHT
End If
Next WB
Application.DisplayAlerts = False
WBN.Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Delete
WBN.Application.DisplayAlerts = True
End Sub