我有一个包含近50列和10000行的Excel文件。其中一些单元格中包含不可打印字符,我想从工作表中的所有单元格中删除这些字符。
对每个列应用函数会很困难。是否有其他方法?
我无法从视觉上看到它。如果您在单元格文本的末尾看到该字符,则可以使用以下代码找到该值:
debug.Print asc(right(range("D1").Value,1))
只需在下面的代码中将110替换为该值。
Sub Sample()
Dim ws As Worksheet
'~~> Set this to the relevant worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Cells.Replace What:=Chr(110), Replacement:="", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
=Clean('sheet1'!A1)
,并输入。现在拖动列和行,你将在这个工作表中得到清理过的数据。你也可以以相同的方式使用修剪函数。希望这可以帮助!要在前50列和10000行的每个单元格上应用Excel中的CLEAN
函数:
Sub cleanSheet()
Dim r As Range
Application.ScreenUpdating = False
For Each r In Range(Cells(1, 1), Cells(10000, 50))
r = WorksheetFunction.Clean(r)
Next r
Application.ScreenUpdating = True
End Sub
谢谢 z̫͋!这正是我在寻找的东西!
我注意到评论中有一些要求只引用非空单元格。我使用了这个方法而不是单元格引用,它极大地提高了处理时间。
For Each r In ActiveSheet.UsedRange
CLEAN
文档:在Unicode字符集中(Unicode:由Unicode联盟开发的字符编码标准。通过使用多个字节来表示每个字符,Unicode使世界上几乎所有书面语言都可以使用单个字符集来表示),存在其他非打印字符(值为127、129、141、143、144和157)。仅靠CLEAN函数无法删除这些额外的非打印字符。 - Jean-François Corbett