02. marts 2007 - 09:14Der er
14 kommentarer og 2 løsninger
Udtræk fra mange ark til ét
Jeg bøvler med en lille opgave, jeg ikke helt kan greje.
Jeg har et antal regneark, indeholdende brugerprofiler. Der er én .xls fil pr. bruger. Et regneark kan være navngivet "[By]-[PC navn]-[Brugers loginnavn].XLS"
I regnearket står en hulens masse oplysninger. Feks:
A5 = Fornavn B5 = Efternavn D10 = Loginnavn E4 = PC Type E5 = PC serienummer osv...
Jeg har nu brug for et script, der samler et udvalg af disse felter fra alle de regneark der ligger i en given folder, så jeg får en liste a la:
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Okay ja der skal man jo se om man kan lave noget i VB der evt kan læse hvad der ligger i denne folder af xls filer. men ligger data'en i de samme celler i de forskellige filer. ?!
Jeg kunne forestille mig, at hvis jeg havde en .txt fil i folderen med XLS filerne, der indeholder resultatet af en DIR /B, kunne den bruges som range? - aber wie? :)
rem Skal tilpasses til din mappe Const mappe = "C:\Documents and Settings\pb\Skrivebord\0203HentFraArk\Test"
Dim samlRæk Sub workbook_activate() ActiveWorkbook.Sheets(1).Activate
samlRæk = 1 søgiFolder
Columns.AutoFit Cells(1, 1).Select
MsgBox ("Opsamling afsluttet") End Sub Private Function søgiFolder() Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(mappe) Set fc = f.Files For Each f1 In fc hentData f1.Name Next søgNyeste = nyestefil End Function Sub hentData(filNavn) Dim Xls, antalRæk
Set Xls = CreateObject("Excel.Application") With Xls .Workbooks.Open mappe + "\" + filNavn antalRæk = .ActiveCell.SpecialCells(xlLastCell).Row For r = 1 To antalRæk ActiveWorkbook.Sheets(1).Cells(samlRæk, 1) = filNavn ActiveWorkbook.Sheets(1).Cells(samlRæk, 2) = .Cells(r, 1) ActiveWorkbook.Sheets(1).Cells(samlRæk, 3) = .Cells(r, 2) ActiveWorkbook.Sheets(1).Cells(samlRæk, 4) = .Cells(r, 3)
rem Udbyg selv de celler, som skal overføres samlRæk = samlRæk + 1 Next r End With
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.