这个字符“ ”(保存此评论后就看不见了)。它看起来像两个括号被推到一起,接触形成一个高矩形。[]
从 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
该函数告诉我们单元格具体包含什么。它给出:
- 字符数
- 对于每个字符,unicode 值
这里有一个例子:
我们知道单元格中有多少个字符C2包含并且我们知道每个字符的 ASCII 码。
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 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与实际数字一致。