Einige Hinweise, wie über die Lösung gehen :
Zuerst die Dateien mit dem FileSystemObject auflisten.
Set fso = CreateObject("Scripting.FileSystemObject")
set fld = fso.GetFolder("path\to\my\folder")
For Each file in fld.Files
If file.Name Like "*.csv" Then LoadFile file.Name
Next
Deklarieren fso
, fld
, file
als Object
. LoadFile
wird eine Funktion sein, die Sie schreiben müssen, die eine einzelne Datei verarbeitet. Es wird etwa wie folgt aussehen:
Sub LoadFile(filename as String)
dim buffer() as variant
dim wb as workbook, ws as worksheet
dim i as Long, beginrow as long, endrow as long
Set wb = Workbooks.Open(filename)
Set ws = wb.Worksheets(1) ' .csv always has 1 worksheet
buffer = ws.Range("A1:A10000") ' put a sensible upper bound here
for i = 1 to 10000
' replace (..first..) and (..last..) with your search interval
if buffer(i, 1) <= (..first..) Then beginrow = i
if buffer(i, 1) < (..last..) Then endrow=i
next
' now beginrow and endrow hold the interval to cut
ws.Cells(beginrow, 1).Resize(endrow-beginrow+1, column_count).Copy destination:=(... to be determined ..)
wb.Close
End Sub
Die Funktion öffnet die Datei; sucht dann in der ersten Spalte nach dem zu kopierenden Intervall; kopiert dann die Zellen und schließt die Datei.
Der Code ist nicht lauffähig, aber sollte Ihnen hoffentlich die richtigen Ideen geben.
1. Zeichnen Sie sich selbst auf, indem Sie Daten ► Externe Daten abrufen ► Von Text verwenden, und untersuchen Sie dann den Code, um zu sehen, wie eine automatische Schleife erstellt wird. 2. Kommen Sie zurück und bearbeiten Sie Ihre Frage, um Ihre eigenen Bemühungen einzubeziehen, wenn Sie in Schwierigkeiten geraten. – Jeeped