VBA-Problem: Fehler beim Kompilieren - Nicht genügend Speicher

Dieses Thema VBA-Problem: Fehler beim Kompilieren - Nicht genügend Speicher im Forum "Microsoft Office Suite" wurde erstellt von klexy, 20. Okt. 2006.

Thema: VBA-Problem: Fehler beim Kompilieren - Nicht genügend Speicher Tja, und das kurz vor dem Wochenende: Ich möchte eine TXT-Datei mit 73 Spalten nach Excel importieren. So sieht das...

  1. Tja, und das kurz vor dem Wochenende:

    Ich möchte eine TXT-Datei mit 73 Spalten nach Excel importieren. So sieht das Makro aus, das ich durch Aufzeichnen erstellt habe. Bei der Aufzeichnung hat der Import tadellos funktioniert:
    Code:
      Dim Dateiname_txt As String
      Dateiname_txt = C:\blabla\Dateiname.txt
      
      Application.CutCopyMode = False
      ChDir C:\blabla
      If Dir(Dateiname_txt) <>  Then
      Workbooks.OpenText FileName:=Dateiname_txt _
        , Origin:=xlWindows, startRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
        False, Comma:=False, Space:=False, Other:=True, OtherChar:=|, _
        FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array _
        (6, 1), Array(7, 2), Array(8, 1), Array(9, 2), Array(10, 1), Array(11, 2), Array(12, 2), _
        Array(13, 2), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array( _
        19, 1), Array(20, 1), Array(21, 1), Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), _
        Array(26, 1), Array(27, 1), Array(28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array( _
        32, 1), Array(33, 1), Array(34, 1), Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), _
        Array(39, 1), Array(40, 1), Array(41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array( _
        45, 1), Array(46, 1), Array(47, 1), Array(48, 1), Array(49, 1), Array(50, 1), Array(51, 1), _
        Array(52, 1), Array(53, 1), Array(54, 1), Array(55, 1), Array(56, 1), Array(57, 1), Array( _
        58, 1), Array(59, 1), Array(60, 1), Array(61, 1), Array(62, 1), Array(63, 1), Array(64, 1), _
        Array(65, 1), Array(66, 1), Array(67, 1), Array(68, 1), Array(69, 1), Array(70, 1), Array( _
        71, 1), Array(72, 1), Array(73, 1))
      End If
    Wenn ich den gleichen Import über das Makro mach, bricht es mir mit der Fehlermeldung Fehler beim Kompilieren - Nicht genügend Speicher ab und markiert das Wort Array von der Spalte 58.

    Was tun? Die TXT-Datei ist eine Abfrage, die ich nicht beeinflussen kann.
     
  2. Hallo klexy,

    in FieldInfo verträgt Excel leider nur 51 Felder  :mad:

    Aber das ist nicht so schlimm  :D

    Für in der Matrix nicht angegebene Felder setzt Excel die Formatierung ->Standard'. Also kann man bei deinem Makro eine ganze Menge Angaben weglassen, da die letzte->nicht Standard'-Formatierung in Feld 13 ist.
    Code:
    Sub TXTImportExcel97()
      Dim Dateiname_txt As String
      Dateiname_txt = C:\ExcelWord_Main\Test_Excel\Test_Excel_TXTImport\Test73Spalten.txt
      
      If Dir(Dateiname_txt) <>  Then
      Workbooks.OpenText _
        FileName:=Dateiname_txt, _
        Origin:=xlWindows, _
        StartRow:=1, _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=True, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=True, _
        OtherChar:=|, _
        FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array _
            (6, 1), Array(7, 2), Array(8, 1), Array(9, 2), Array(10, 1), Array(11, 2), Array(12, 2), _
            Array(13, 2))
       ->Felder werden ab 1 gezählt
       ->Die Felder 9,11,12,13 sollen als Text (also 2) importiert werden
       ->Für alle anderen Felder wird Standard als Formatierung benutzt (Voreinstellung)
      Else
        MsgBox Import-Datei nicht vorhanden. & vbLf & Dateiname_txt
      End If
    End Sub
    So klappt das auch bei Excel 97.

    Laut Dokumentation ist nur die Angabe von Feldern notwendig, die vom Standard abweichen.  Das bekommt Excel97 aber nicht gebacken. Es kommt dann bei den Spalten mit der Formatierung durcheinander. Es formatiert damit die ersten 5 Spalten als Text, statt der angegebenen Spaltennummern. Kannst es ja mal unter 2003 ausprobieren.
    Code:
    Sub TXTImportLautDokumentation()
      Dim Dateiname_txt As String
      Dateiname_txt = C:\ExcelWord_Main\Test_Excel\Test_Excel_TXTImport\Test73Spalten.txt
      
      If Dir(Dateiname_txt) <>  Then
      Workbooks.OpenText _
        FileName:=Dateiname_txt, _
        Origin:=xlWindows, _
        StartRow:=1, _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=True, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=True, _
        OtherChar:=|, _
        FieldInfo:=Array(Array(7, 2), Array(9, 2), Array(11, 2), Array(12, 2), Array(13, 2))
       ->Felder werden ab 1 gezählt
       ->Die Felder 7,9,11,12,13 sollen als Text (also 2) importiert werden
       ->Für alle anderen Felder wird Standard als Formatierung benutzt (Voreinstellung)
      Else
        MsgBox Import-Datei nicht vorhanden. & vbLf & Dateiname_txt
      End If
    End Sub
    Gruß Matjes :)
     
  3. Danke Matjes,
    das werd ich am Montag gleich mal probieren.
    Wir haben nur Excel 97 und ich hoffe, das Ding damit schaukeln zu können.

    Mir langt es schon, daß wir neulich wegen von anderern Programme auf Word 2000 umstellen mussten. Das Ding hat nur Nachteile gegenüber Word 97. Aber dazu werde ich vielleicht später mal ein Posting einstellen.
     
  4. Funktioniert einwandfrei, wenn man die Array-Definitionen nur bis Spalte 13 definiert.
    Der Rest bleibt dann automatisch auf Standard.

    Zum Glück sind die Daten, die als Text definiert werden müssen, nicht am Ende der Tabelle.
     
  5. Unter Excel 2003 funktionieren beide Versionen. Das entspricht dann auch der Dokumentation  ;)

    Gruß Matjes :)
     
Die Seite wird geladen...

VBA-Problem: Fehler beim Kompilieren - Nicht genügend Speicher - Ähnliche Themen

Forum Datum
VBA-Problem Webentwicklung, Hosting & Programmierung 6. Sep. 2005
Fehlermeldung beim remote Login zu meiner IP-Cam Windows 7 Forum Dienstag um 12:31 Uhr
Fehler beim Ändern der Eigenschaften einer Datei Windows 10 Forum 17. Okt. 2016
Fehler beim Abdocken von "USB-Massenspeichergerät" Hardware 18. Sep. 2016
Welches ist das letzte kaufbare Office und Fehler beim Scrollen in Word: Text verdoppelt sich Microsoft Office Suite 14. Juli 2016