Jörg Lorenz: Daten von Excel verarbeiten

Beitrag lesen

Hi Roger,

zunächst erst einmal danke, dass du dich überhaupt mit meinem gurk-problem beschäftigst.

Kein Problem ;-)

das problem tritt nach wie vor auf. ich kann mir echt nicht vorstellen, dass es am code liegt.

Doch - da waren noch zwei Fehler drin. Erstmal hatte ich zwar alles auf den Array geändert, aber vergessen beim Schreiben der Datei auch den Array zu verwenden. Und dann hatte ich bei einem <td> den / vergessen, aber das hat damit nichts zu tun.

ist es evtl ein problem des sp3? gibt es irgendwo eine beschränkung, die die datei nicht beschreiben lässt?

Wenn es da nicht noch etwas Unbekanntes gibt - nein. Probleme sind nur bekannt, wenn Code per Code geschrieben wird, aber das ist ja hier nicht der Fall. "Open" (bzw. der gesamte Aufbau) wurde schon auf den verschiedensten Systemen verwendet, sogar auf dem Mac, und es funktionierte immer.

ich habe sogar die datei vorher angelegt, um sicher zu gehen, dass sie da ist und beschrieben werden kann. vielleicht ein berechtigungsproblem?

Erlebt habe ich das zwar noch nicht, aber Du kannst die Datei ja mal testweise in den Ordner des Benutzers schreiben lassen.

gibt es nicht eine möglichkeit irgendwelche meldungen abzufangen/zu loggen?

Im einfachsten Fall behelfe ich mir immer mit MsgBox und lasse mir die Werte von Variablen damit zeigen.

Ich habe es jetzt mal selbst getestet (XP Home und Office 2000), da wurde die Datei einwandfrei erstellt. Der Code (aus dem Editor kopiert):

Sub AlsTextSpeichern()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String, strTemp1 As String, strTemp2 As String
Dim arrSammler()
Dim intI As Integer

Const Pfad As String = "c:"
Const Dateiname As String = "test"
Const Extension As String = ".txt"
Const Trennzeichen As String = ";"

strTemp1 = "<html><head> ... weitere Angaben ... </head><body>"
Set Bereich = ActiveSheet.UsedRange
intI = 0
For Each Zeile In Bereich.Rows
    For Each Zelle In Zeile.Cells
        If InStr(1, Zelle.Text, ";") > 0 Then
            'Zellen, die ein Semikolon beinhalten in Anführungsstriche setzen
            strTemp = strTemp & "<td>" & """" & CStr(Zelle.Text) & """" & "</td>"
        Else
            strTemp = strTemp & "<td>" & CStr(Zelle.Text) & "</td>"
        End If
    Next
    strTemp = "<tr>" & strTemp & "</tr>"
    intI = intI + 1
    ReDim Preserve arrSammler(intI)
    arrSammler(intI - 1) = strTemp
    strTemp = ""
Next
strTemp2 = "</body></html>"
'On Error Resume Next
Open Pfad & Dateiname & Extension For Output As #1
    Print #1, strTemp1
    For intI = 0 To UBound(arrSammler) - 1
        Print #1, arrSammler(intI)
    Next
    Print #1, strTemp2
Close #1
Set Bereich = Nothing
End Sub

Viele Grüße

Jörg