2010-08-27 8 views
0

alt textcaractères questionmark (?) Lorsque la ligne de lecture de fichiers par ligne dans feuille de calcul

Je lis une ligne de fichier texte en ligne avec VBA dans une feuille de calcul. il renvoie souvent ces caractères. Est-ce que quelqu'un sait comment les supprimer?

Voilà comment je le lis:

Sub ReadAsciiFile() 

    Dim sFileName As String 
    Dim iFileNum As Integer 
    Dim sBuf As String 
    Dim i As Integer 
    i = 1 

    ' edit this: 
    sFileName = "usmap.txt" 

    ' does the file exist? simpleminded test: 
    If Len(Dir$(sFileName)) = 0 Then 
     Exit Sub 
    End If 

    iFileNum = FreeFile() 
    Open sFileName For Input As iFileNum 

    Do While Not EOF(iFileNum) 
     Line Input #iFileNum, sBuf 
     ' now you have the next line of the file in sBuf 
     ' do something useful: 
     activesheet.Cells(i, 1) = sBuf 
     i = i + 1 
     Debug.Print sBuf 
    Loop 

    ' close the file 
    Close iFileNum 

End Sub 
+0

Ils ressemblent ils sont des représentations de caractères non imprimables (dans le jeu de caractères). Qu'y a-t-il dans le texte original? – Robaticus

+0

texte original est svg –

Répondre

1

Tout d'abord, si vous copiez et coller dans Excel, vérifiez votre méthode de pâte et essayer « Collage spécial » en tant que texte (par opposition au format HTML ou Unicode Texte).

Vous pouvez également utiliser une simple fonction VBA pour déterminer les caractères non valides. Ensuite, vous pouvez utiliser une autre fonction VBA pour supprimer les caractères non valides ou utiliser la fonction Excel Substitute() que j'ai montrée dans la dernière question que vous avez posée. Voici un exemple rapide du code VBA pour voir quels caractères existent dans la cellule A1:

Sub PrintChars() 
    Dim intLen As Integer 
    Dim str As String 
    str = Range("A1").Value 
    intLen = Len(str) 
    Dim intCount As Integer 
    intCount = 1 

    Dim strChar As String 

    Do While intCount <= intLen 
    strChar = Mid(str, intCount, 1) 
    Debug.Print strChar & ": " & Asc(strChar) 
    intCount = intCount + 1 
    Loop 

End Sub 
+0

+1 pour les photos de hamburgers –

+0

@I__ ???? des hamburgers? –

Questions connexes