14. december 2009 - 13:48Der er
8 kommentarer og 1 løsning
Har brug for en funktion..
Jeg har behov for en funktion, som kan følgende..
loope igennem 2 mapper med excel workbooks.
Hvis der er match mellem de sidste 4 cifre i fil navnet, skal den åbne de 2 matchede workbooks..
fx..
hvis fil_mappe_1 = right(fil, 4) = fil_mappe_2 right(fil2, 4) then Åbn begge workbooks..
Dette skal den kunne for ALLE excel filerne i mapperne.. (der er 10 i hver og 10 som mathcer, må dog gerne være dynamisk, så der kan tilføjes flere filer).
Jeg er nået så langt jeg lægger alle mine fil navne ind i et array.
Jeg kan også tage en substring af filnavnet og bruge denne til at sammenligne med en "betingelse". Men Jeg ved ikke hvordan jeg ændrer det til at være en substring af et andet fil navn således.
if substring_fil_navn_1 = substring_fil_navn_2 then do something
min kode er:
'Fill in the path\folder where the files are MyPath = ThisWorkbook.path & "\data\salgsdata\"
'If there are no Excel files in the folder exit the sub FilesInPath = Dir(MyPath & "*.xls*") If FilesInPath = "" Then MsgBox "No files found" Exit Sub End If
'Fill the array(myFiles)with the list of Excel files in the folder Fnum = 0 Do While FilesInPath <> "" Fnum = Fnum + 1 ReDim Preserve MyFiles(1 To Fnum) MyFiles(Fnum) = FilesInPath FilesInPath = Dir() Loop
Prøv denne - obs dubletterne indsættes forløbig i kolonne A og B i aktive Ark Skal der laves noget i de åbnede projektmapper, skal det gøres via koden, med mindre du blot vil have alle åbnet for editering
Sub DubXLS() Dim Projektmapper1(100) Dim Projektmapper2(100)
sti1 = "C:\Users\pm\Desktop\*.xls" ' ret sti til aktuel fil1 = Dir(sti1) Do While fil1 <> "" Projektmapper1(tal1) = fil1 tal1 = tal1 + 1 fil1 = Dir Loop
sti2 = "C:\Users\pm\Desktop\Experten\*.xls" ' ret sti til aktuel fil2 = Dir(sti2) Do While fil2 <> "" Projektmapper2(tal2) = fil2 tal2 = tal2 + 1 fil2 = Dir Loop
For x = 0 To tal1 - 1 For y = 0 To tal2 - 1 If Right(Projektmapper1(x), 8) = Right(Projektmapper2(y), 8) Then 'ret til 9 hvis Excel7 rk = rk + 1 Cells(rk, 1) = Projektmapper1(x) Cells(rk, 2) = Projektmapper2(y) End If Next Next
Sub DubXLS() Dim Projektmapper1(100) Dim Projektmapper2(100)
sti1 = "C:\Users\pm\Desktop\K22\*.xls" ' ret sti til aktuel fil1 = Dir(sti1) Do While fil1 <> "" Projektmapper1(tal1) = fil1 tal1 = tal1 + 1 fil1 = Dir Loop
sti2 = "C:\Users\pm\Desktop\Experten\*.xls" ' ret sti til aktuel fil2 = Dir(sti2) Do While fil2 <> "" Projektmapper2(tal2) = fil2 tal2 = tal2 + 1 fil2 = Dir Loop
For x = 0 To tal1 - 1 For y = 0 To tal2 - 1 If Right(Projektmapper1(x), 8) = Right(Projektmapper2(y), 8) Then 'ret til 9 hvis Excel7 rk = rk + 1 Cells(rk, 1) = Projektmapper1(x) Cells(rk, 2) = Projektmapper2(y) sti11 = Left(sti1, Len(sti1) - 5) sti22 = Left(sti2, Len(sti2) - 5) Workbooks.Open sti11 & Projektmapper1(x) Workbooks.Open sti22 & Projektmapper2(y) ' 'do ur stuff ' Workbooks(Projektmapper1(x)).Close SaveChanges:=True Workbooks(Projektmapper2(y)).Close SaveChanges:=True End If Next Next
Kan være jeg vender tilbage, hvis jeg løber ind i flere problemer.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.