tags:

views:

26

answers:

1

alt text

I am reading a text file line by line with VBA into a worksheet. it's often returning these characters. Does anyone know how to remove them?

this is how i am reading it:

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
+1  A: 

First, if you're copying and pasting into Excel, check your paste method and try "Paste Special" as Text (as opposed to HTML or Unicode Text).

You can also use a simple VBA function to find out what the invalid characters are. Then you could either use another VBA function to remove the invalid characters or use the Excel formula Substitute() function which I showed in the last question you asked. Here's a quick example of some VBA code to see what characters exist in cell 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
Ben McCormack
+1 for pictures of hamburgers
I__
@I__ ???? hamburgers?
Ben McCormack