|
本帖最后由 lingyuncelia 于 2017-7-24 10:24 编辑
如上图示,想清除A列的不可见字符,运行以下代码:
Sub 清除不可见字符()
For Each Rng In ActiveSheet.UsedRange
For i = 3 To 15
Rng.Replace ChrW(i), ""
Next
For i = 28 To 32
Rng.Replace ChrW(i), ""
Next
For i = 127 To 254
Rng.Replace ChrW(i), " "
Next
Next
End Sub
运行一次后,居然有如下结果,不少反多,变22位了,但很奇怪,为什么会这样,而且只有C2居然无变。
再运行一次,成功了
只有对第3个表是这样,其它两个表运行一次就OK了。
这个表曾经在论坛由其他人发表过,原来代码是:
Sub 清选定区不可见字符()
'原理:代码值(用CODE函数得到)在1-255范围内的字符中,有1-15,28-32,127-254共148个不可见字符。
Set rngs = Intersect(ActiveSheet.UsedRange, Selection)
For i = 3 To 15 '代码值1-15不可见字符((选1,2时清空))
rngs.Replace ChrW(i), ""
Next
For i = 28 To 32 '代码值28-32不可见字符
rngs.Replace ChrW(i), ""
Next
For i = 127 To 254 '代码值127-254不可见字符
rngs.Replace ChrW(i), ""
Next
End Sub
但轮到我来运行,系统提示:
运行时错误‘91’
对象变量或With块变量未设置
为什么会这样,论坛上很多人跟帖的,难道用这个代码都成功了,都无报错?
|
|