我正在尝试将Excel文件转换为SQL查询。我的问题是我给出的文件中有特殊字符。我无法将它们替换为CTRL + H,因为它们根本不显示在Excel文件中。当我写我的查询(在utf8或ANSI中),他们显示。使用Ultra-Edit,它们显示为HEX C2 92.使用utf8中的Notepad ++,它们显示为PU2。在ANSI中,它们显示为''。我怀疑这是一个撇号。顺便说一句,这是法国文件。
到目前为止,我试图将它放在一个字符串中并执行这些操作,但没有任何效果。
Dim Line as String
Line = Wb.Worksheets(1).Cells(LineNo, ColNo)
Line = Replace(Line, "Â’", "''")
Line = Replace(Line, "’", "''")
Line = Replace(Line, "Â", "''")
Line = Replace(Line, Chr(194) & Chr(146), "''") 'decimal value of C2 92
Line = Replace(Line, Chr(146) & Chr(194), "''") 'inverted decimal value of C2 92
谢谢!
答案 0 :(得分:3)
不要试图消除各种垃圾字符,而是要专注于保留好的字符。假设我们知道有效字符是大写和小写字母,数字和下划线。这段代码只保留好的代码:
Public Function KeepOnlyGood(s As String) As String
Dim CH As String, L As Long, i As Long
KeepOnlyGood = ""
L = Len(s)
For i = 1 To L
CH = Mid(s, i, 1)
If CH Like "[0-9a-zA-Z]" Or CH = "_" Then
KeepOnlyGood = KeepOnlyGood & CH
End If
Next i
End Function
如果你想用空格替换垃圾,可以修改代码来做到这一点。