我正在尝试将 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
谢谢!
最佳答案
与其试图消除各种垃圾角色,不如尝试专注于只保留好的角色。假设我们知道有效字符是大小写字母、数字和下划线。此代码将仅保留好的代码:
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
如果您想用空格替换垃圾,可以修改代码来实现这一点。
关于excel - 替换字符串中奇怪或特殊的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424463/