尝试导入 Excel 工作表时出现奇怪的字符导致错误

尝试导入 Excel 工作表时出现奇怪的字符导致错误

这个字符“ ”(保存此评论后就看不见了)。它看起来像两个括号被推到一起,接触形成一个高矩形。[]

从 Filemaker(旧版本)导出的 Excel 表发生错误并在具有重复字符的某一行停止导入。

当我将单元格内容复制/粘贴到 Wordpad 中时,我只能看到奇怪的字符。该行包含 2 个看不见的换行符标记,它们之间是 。每当发生这种情况时,我都必须在 Wordpad 中编辑内容,然后粘贴,然后它才能正常工作。每隔几行就会出现一次。

第二个问题。有没有办法在 Excel 中搜索并删除所有这些?

答案1

我们需要首先识别出恶意角色,然后将其删除。

首先将以下用户定义函数放入标准模块中:

Public Function WhatsIn(s As String) As String
    Dim msg As String, i As Long, L As Long

    L = Len(s)
    msg = L & vbCrLf
    For i = 1 To L
        msg = msg & i & "    " & AscW(Mid(s, i, 1)) & vbCrLf
    Next i
    WhatsIn = msg
End Function

该函数告诉我们单元格具体包含什么。它给出:

  1. 字符数
  2. 对于每个字符,unicode 值

    这里有一个例子:

在此处输入图片描述

我们知道单元格中有多少个字符C2包含并且我们知道每个字符的 ASCII 码。

用户定义函数 (UDF) 非常容易安装和使用:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除 UDF:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要从 Excel 使用 UDF:

=WhatsIn(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能使其工作!

一旦我们知道了 ASCII 数字,就运行如下宏:

Sub KleanUp()
    Cells.Replace ChrW(166), ""
End Sub

我们将替换166与实际数字一致。

相关内容