难以在VBA中使用范围和本机Excel公式

时间:2014-06-20 17:37:38

标签: excel vba excel-vba

我有一个体面的工作表,我想删除/清除任何空单元格的内容。它们没有我可以看到的空格或任何字符(Len()返回零)并且它们被Counta计算。

这是我开发的宏,它应该清除长度为零的选择中每个单元格的内容:

Sub NoNull()
Dim rCell As Range
Dim iLen As Integer
 For Each rCell In Selection
    iLen = WorksheetFunction.Len(Range(rCell))
    If iLen = 0 Then rCell.ClearContents
 Next rCell
End Sub

我在这一行收到错误:

iLen = WorksheetFunction.Len(Range(rCell))

我认为它与我将rCell输入Len公式的方式有关。

2 个答案:

答案 0 :(得分:1)

你非常关心:

Sub NoNull()
Dim rCell As Range
Dim iLen As Integer
For Each rCell In Selection
    iLen = Len(rCell)
    If iLen = 0 Then rCell.ClearContents
 Next rCell
End Sub

答案 1 :(得分:0)

如果单元格真的是空白,那么您可以使用SpecialCells

一次性完成此操作

如果单元格可能包含评估为零长度字符串的公式,则可以通过关闭ScreenUpdating并删除redunandant iLen = Len(rCell))

来改善原始循环

for tuly empty cells

Sub NoNull()
On Error Resume Next
Selection.SpecialCells(xlBlanks).ClearContents
End Sub

更好的循环代码

Sub NoNull()
Dim rCell As Range
Application.ScreenUpdating = False
For Each rCell In Selection
If Len(rCell.Value) = 0 Then rCell.ClearContents
Next rCell
Application.ScreenUpdating = True
End Sub