Ich bin sehr neu zu VBA in Excel. Ich verwende diesen Code ich zusammen online von Beispiel gepflasterten Schnipseln eine Spalte von Zellen in Excel in eine Textdatei zu konvertieren:Excel zu Text VBA vorangestellt mit Fragezeichen - wie zu beheben?
Private Sub CommandButton1_Click()
Dim myFile As String, rng As Range, cellValue As Variant, i As Integer, j As Integer
Dim FName As String
Dim FPath As String
Set fsT = CreateObject("ADODB.Stream"): 'Create Stream object
fsT.Type = 2: 'Specify stream type – we want To save text/string data.
fsT.Charset = "utf-8": 'Specify charset For the source text data.
FPath = "C:\WHIT\ParamGen"
FName = Sheets("Sheet1").Range("b49").Text
myFile = FPath & "\" & FName
Set rng = Range("B2: B42 ")
Open myFile For Output As #1
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
cellValue = rng.Cells(i, j).Value
If j = rng.Columns.Count Then
Print #1, cellValue
Else
Print #1, cellValue,
End If
Next j
Next i
Close #1
End Sub
Das Problem ist, dass die erste Zelle in meiner Excel-Datei enthält den Text:
@ = 1
... und es zeigt in der generierten Textdatei wie folgt auf:!?!
@ = 1
Alles andere in der Excel-Datei wird ohne Probleme in die Textdatei geschrieben, aber dieses Fragezeichen durchkreuzt die Importfunktion in der Software, für die diese Datei erzeugt wird.
Haben Sie irgendwelche Ideen, dieses Fragezeichen verschwinden zu lassen?
Ich weiß nicht, warum das "?" wird hinzugefügt, aber hoffentlich wird so etwas los und Sie können weiterkommen. – Cyril
Okay, also weiter Hintergrund. Die Datei, die ich erstelle, ist eine Parameterdatei, und ich habe eine vorher erstellte Parameterdatei von der Software eingefügt, in die ich versuche zu importieren. Hier kommt das Original "@! = 1" her. Nachdem ich zurück gegangen bin, um es noch einmal zu betrachten, habe ich versucht, diese erste Zeile manuell einzugeben, und Excel dachte, dass ich versuchte, eine Funktion zu verwenden. Ist das @ -Zeichen ein Funktionsbezeichner in Excel? Wie auch immer, ich ging es mit dem obligatorischen ', um es nicht als eine Funktion zu behandeln und das Skript zu wiederholen. Es funktionierte dieses Mal gut. – VanGoghComplex
@VanGoghComplex Ich glaube, dass das "@" Symbol eine Funktion bezeichnet; Mir wurde gesagt, dass dies ein Teil der XML-Funktionalität ist, obwohl ich keine Basis habe, die über Heresay hinausgeht, da ich mit XML nicht vertraut bin. Mein anderer Vorschlag, wenn die Ersetzung nicht funktionierte, bestand darin, den Apostroph anzuhängen, so dass es ein auskommentiertes Feld wäre, also bin ich froh, dass Sie sofort getroffen und gearbeitet haben! – Cyril