excel - 替换字符串中奇怪或特殊的字符

标签 excel vba character-encoding vb6

我正在尝试将 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

enter image description here

如果您想用空格替换垃圾,可以修改代码来实现这一点。

关于excel - 替换字符串中奇怪或特殊的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424463/

相关文章:

vba - 打开工作簿时关闭 Excel 后台错误检查

excel - 是否可以将用户输入字符串声明为 VBA 中的变量?

vba - 从两个带有变量名称的打开工作簿导入数据

excel - 如何使用输入框引用单元格?

ruby - 如何确定Ruby中字符串的编码

php - 在 php 邮件中发送希伯来语主题去克林贡......?

Excel比较两个工作表中的数据

file - 如何在 VBA (MS Access) 中检查文件加密

excel - 将用户名(数组)与电子邮件(数组)匹配

java - 如何使用 JAX-RS 设置字符集?