Von |
zfwez |
Am |
24. Oktober 2008 um 17:31:18 |
Frage |
Hallo, ich importiere eine/mehrere csv- Dateien, die jeweils mehr als 256 Spalten haben. Mein Wunsch ist es, wenn mehr als 256 Spalten importiert werden, dass eine zweite Tab erstellt wird. Im Moment werden die restlichen Daten nicht in die neue Tab geladen, siehe Code.Sub GetOpenFilename_MultiSelect() Dim varRetVal As Variant Dim wksNeu As Worksheet Dim wbkNeu As Workbook Dim qtbNeu As QueryTable Dim lngN As Long Dim wbkMeineMappe As Workbook Dim strPathAndFileName As String Dim strNeuerSheetName As String Dim lngRow As Long Dim strValues(65536, 1) As String Dim ResultStr As String Dim Blatt As Worksheet ' Zielmappe muß schon geöffnet sein WICHTIG Set wbkMeineMappe = Workbooks("Auswertung_2_2.xls") varRetVal = Application.GetOpenFilename( _ FileFilter:="Microsoft Excel-Dateien (*.csv), *.csv", _ Title:="Dateien auswählen", _ MultiSelect:=True) If IsArray(varRetVal) Then 'On Error Resume Next 'besser auskommentiert lassen For lngN = LBound(varRetVal) To UBound(varRetVal) strPathAndFileName = varRetVal(lngN) strNeuerSheetName = Replace(Dir(strPathAndFileName, 63), ".csv", "", 1, -1, 1) Set wksNeu = ThisWorkbook.Worksheets.Add wksNeu.Name = strNeuerSheetName Set qtbNeu = wksNeu.QueryTables.Add(Connection:="TEXT;" & strPathAndFileName, _ Destination:=wksNeu.Cells(1, 1)) qtbNeu.RefreshStyle = xlInsertDeleteCells qtbNeu.TextFilePlatform = xlWindows qtbNeu.TextFileParseType = xlDelimited qtbNeu.TextFileTabDelimiter = False qtbNeu.TextFileSemicolonDelimiter = False qtbNeu.TextFileCommaDelimiter = True qtbNeu.TextFileSpaceDelimiter = False qtbNeu.TextFileDecimalSeparator = "." qtbNeu.TextFileThousandsSeparator = "," qtbNeu.Refresh BackgroundQuery:=False qtbNeu.Delete Next 'bis hier ist alles o.k. 'wenn die importierte Datei mehr als 256 Zeilen hat ' wird eine zweites Tab- Blatt erstellt. If Left(ResultStr, 1) = "=" Then strValues(lngRow, 1) = "'" & ResultStr Else strValues(lngRow, 1) = ResultStr End If If lngRow < 65536 Then lngRow = lngRow + 1 Else End If Activesheet.Range("A1:A65536") = strValues ActiveWorkbook.Worksheets.Add after:=Worksheets(Worksheets.Count) lngRow = 1 'wksNeu = strNeuerSheetName + 1 wksNeu.Name = strNeuerSheetName + 1 '????? 'eine neue Tab. wird zwar erstellt, jedoch ohne die Daten ! 'als zweites soll die Tab den Namen der geöffneten Datei haben 'mit "_2" . '**************** On Error GoTo 0 End If End Sub Danke für die Mithilfe und eine schönes WO Gruß zfwez |
|