VBA-Code für .txt-Export
17.03.2020 07:59:04
Raphael
In der Ursprungs-Tabelle auf dem ersten Arbeitsblatt werden Werte manuell eingetragen und auf einem zweiten Arbeitsblatt über Feld-code (Bspw. =WENN(Blatt1!A57>0;Blatt1!B57;"")) zusammengetragen. Dieses zweite Arbeitsblatt soll nun die Werte als .txt exportiert werden. Die leeren Zeilen sollen jedoch vor dem Export gelöscht werden, also die die nur den Feld-code haben zum Abrufen der Werte auf dem ersten Arbeitsblatt.
Ich habe einen VBA-Code für den .txt Export dieser Werteliste zusammenkopiert und er funktioniert soweit in der Visual Basic Umgebung auch ganz gut. Nun wollte ich das Makro über ein Schnellzugriff-Symbol abspielen lassen. Nun gibt es einen Fehler "Objekt erforderlich". Dieser Fehler tritt aber nur auf wenn ich das Makro über den Schnellzugriff abspielen lasse.
Wie kann ich das korrigieren? Hier der entsprechende Code:
Sub XLS_nach_TXT_Export()
Dateiname = ThisWorkbook.Path & "\import.txt"
Trennzeichen = Chr(9) ' Chr(9) = Tabulator
Columns(1).Insert
With Range("A1:A" & Cells(65536, 2).End(xlUp).Row)
.FormulaR1C1 = "=if(RC2=0,true,row())"
.Formula = .Value
.CurrentRegion.Sort key1:=Cells(1, 1), order1:=xlAscending, Header:=xlNo
.SpecialCells(xlCellTypeConstants, 4).EntireRow.Delete
.EntireColumn.Delete
End With
Open Dateiname For Output As #1
For Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
' Spalten 1 bis 7 der aktiven Tabelle werden durchlaufen
GanzeZeile = Cells(Zeile, 1).Value
For Spalte = 2 To 22
GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
Next Spalte
Print #1, GanzeZeile
Next Zeile
Close #1
End Sub