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

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

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

 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))

我假设它与我将rCellinputLen公式的方式相关。

你很靠近:

 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 

如果细胞真的是空白的,那么你可以用SpecialCells一次性完成

如果单元格可能包含评估为零长度string的公式,则可以通过closuresScreenUpdating并除去redunandant iLen iLen = Len(rCell))来改进原始循​​环

为tuly空细胞

 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