在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