Éviter extra “retour chariot” dans Print avec Visual Basic?

Avec Visual Basic, je suis confus avec ce que le comportement de l'instruction Print dans que, parfois, la déclaration suivante: créerait d'autres retour chariot "^M" à la fin d'une ligne, mais parfois, ça ne marche pas. - Je vous demander pourquoi?

filePath = "d:\tmp\FAE-IMM-Report-2012-Week.org"
    If Dir(filePath) <> "" Then
        Kill filePath
    End If
    outFile = FreeFile()
    Open filePath For Output As outFile
    Print #outFile, "#+TITLE:     Weekly Report"

serait de produire des

#+TITLE:     Weekly Report^M

alors que je le souhaite, sans ^M:

#+TITLE:     Weekly Report

Dans un programme d'essai, presque le même code il n'y aurait aucun "^M".

S'il vous plaît aider! Merci beaucoup.

Après plus d'expérience, j'ai constaté que la suggestion suivante à l'aide de vbNewline et de ";" à la fin de l'impression du contenu, n'est toujours pas résolu mon problème.

Après un isolement, j'ai trouvé la cause du problème est un personnage qui semble comme un espace, non pas exactement de l'espace, suivi par un saut de ligne et retour chariot. Avant d'imprimer le texte contenant la délinquance de la chaîne, il n'y a pas de retour chariot, mais une fois la ligne incriminée est imprimé, puis chaque ligne, y compris la ligne précédente imprimé aurait un retour chariot.

Je ne suis pas sûr de ce que exactement la délinquance de la chaîne est que mes compétences de VBA n'est pas encore trop bien.

Voici une copie de la délinquance texte à partir d'une cellule de feuille de calcul:

   "There is something invisible after this visible text 
After the invisible text, then there might be a carriage return $Chr(13) and/or newline"

Je ne suis pas sûr si la pâte sur un navigateur web serait de préserver le contenu. En collant à emacs, je ne vois pas de retour chariot, tandis que emacs doit l'afficher, si il y en a un. Donc je suppose qu'il n'y a pas de retour chariot dans la délinquance de la chaîne.

Ci-dessous le programme de démontrer le problème:

    Sub DemoCarriageReturnWillAppear()
    Dim filePath As String
    Dim outFile
    Dim offendingText
    filePath = "d:\tmp\demoCarriageReturn.org"
    If Dir(filePath) <> "" Then
        Kill filePath
    End If
    outFile = FreeFile()
    Open filePath For Output As outFile
    Print #outFile, "#+AUTHOR:    Yu Shen" & vbNewLine;
    Close #outFile 'At this moment, there is no carriage return
    Open filePath For Append As outFile
    offendingText = ThisWorkbook.Worksheets("Sheet1").Range("A1")
    Print #outFile, offendingText & vbNewLine;
    Close #outFile 'Now, every line end has carriage return.
    'It must be caused by something offending at the above print out content.
End Sub

Voici le résultat final de la procédure ci-dessus:

    #+AUTHOR:    Yu Shen^M

There is something invisible after this visible text 
After the invisible text, then there might be a carriage return $Chr(13) or newline^M

Remarque ci-dessus "^M" est ajouté par moi-même, étant donné que le transport de retour ne serait pas visible dans le navigateur.

Si vous êtes intéressé, je peux vous envoyer le fichier excel avec le contenu incriminé.

J'ai besoin de votre aide sur la façon d'éviter ces délinquance de la chaîne, ou les retours à la ligne.
(J'ai même essayer de faire de la chaîne de Remplacer le transport de retour à la ligne, j'ai trouvé que lorsque je l'ai supprimé manuellement quelle que soit causé un changement à l'autre de la ligne, le problème aurait disparu. Mais l'appel de Remplacer de remplacer vbNewline, Chr$(13), ou vbCrLf ne faisait aucune différence.

Merci pour votre aide!

Yu

Ce qui est différent sur la ligne d'Impression dans le programme qui n'a pas l'impression ^M?

OriginalL'auteur Yu Shen | 2012-02-25