Sub Clear()
Dim Target As Range
Dim ClearMe As Range
For Each Target In Sheets("Sheet1").UsedRange
If Len(Target) = 0 And Not Target.HasFormula Then
If Not ClearMe Is Nothing Then
Set ClearMe = Union(ClearMe, Target)
Else
Set ClearMe = Target
End If
End If
Next Target
If Not ClearMe Is Nothing Then ClearMe.Clear
End Sub
字符串
如果您想在整个工作表上运行宏之前测试此功能,请将UsedRange替换为您在照片中向我们展示的实际范围。例如,For Each Target In Sheets("Sheet1").Range("A1:A10")(idk实际范围)。一旦宏完成,请查看相同的范围是否在突出显示时显示计数 *
Sub diogo()
Dim cell As Range, wf As WorksheetFunction
Set wf = Application.WorksheetFunction
For Each cell In ActiveSheet.UsedRange
If Len(cell.Value) = 0 Then
If wf.CountA(cell) = 1 Then
cell.Clear
End If
End If
Next cell
End Sub
3条答案
按热度按时间tyky79it1#
工作表的
UsedRange
属性还包括您看到的具有重影数据的单元格,这可以帮助您动态清除正确的单元格。请注意,这将清除空白单元格中的所有内容。这包括注解,格式等,因此只需确保其他没有重影数据问题的单元格没有问题。1.循环遍历
UsedRange
中的每个单元格,并查找具有Len = 0
和HasFormula = False
的单元格,即要清除的空白1.将这些单元格(无字符)添加到
Union
(单元格集合)1.循环完成后,清除
Union
,这有望解决您的问题字符串
UsedRange
替换为您在照片中向我们展示的实际范围。例如,For Each Target In Sheets("Sheet1").Range("A1:A10")
(idk实际范围)。一旦宏完成,请查看相同的范围是否在突出显示时显示计数 *nhn9ugyo2#
如果单元格A2显示为空,并且A2的长度为零,则在另一个单元格中输入:
字符串
这将允许您区分:
1.单元格中的字符
1.牢房里什么都没有
1.在单元格中返回的公式或常量
如果你想
Clear
这些单元格,运行这个简短的宏:型
h4cxqtbf3#
无法找到一种方法来问这个问题,产生任何简单的答案,将“NONBLANK”单元格转换为“EMPTY”单元格以绘制表列。“NONBLANK”单元格一直被绘制为0.0。我发现了一些有用的东西:在表中,对该列进行排序(标题中的小向下箭头非常好);所有的“NONBLANK”,“NONEMPTY”单元格将被收集在一起;选择所有这些单元格并删除它们(使用Delete键,而不是使用下拉菜单中的Delete选项);按通常的键列对表格进行排序。