我经常使用 Excel 表格。 当我尝试公式、其他宏等时,我使用一个非常简单的宏来清除表格...... 由于我不想删除指定的表,因此我锁定了它们。 我有 5000 到 10000 个单元格需要清除,这是非常非常长的,因为我的计算机并不是真正为此类任务而构建的。
这是我的实际宏,运行良好,但是我可以更改一些内容以便更快吗? 我知道一一检查所有单元格相当长,但我真的有选择吗? 我必须准确地说表已完全清除或根本未清除(锁定) 而且我无法精确确定要清除或不清除的表的名称,因此我选择遍历每个表并仅在未锁定时进行清除。
Sub RaZ_activesheet_table()
Dim tbl As ListObject
Dim retour As Long
Dim c As Range
Application.ScreenUpdating = False
retour = MsgBox(Prompt:="Vider les tableaux?", Buttons:=vbOKCancel)
If retour = vbOK Then
For Each tbl In ActiveSheet.ListObjects
For Each c In Range(tbl.Name)
If c.Locked = False Then
c.ClearContents
End If
Next c
Next tbl
End If
Application.ScreenUpdating = True
End Sub
最佳答案
我找到了这个解决方案。 如果满足以下条件,则它有效:
- 您首先解锁所有手机
- 接下来,保护您不想清除的细胞
- 最后,您需要使用第一个选项添加工作表保护
之后,您可以应用这个简单的代码:
sub test()
On Error Resume Next
ActiveSheet.UsedRange.Value = vbNullString
On Error GoTo 0
end sub
在你的情况下,你会得到这样的东西:
Sub RaZ_activesheet_table()
Dim tbl As ListObject
Dim retour As Long
Dim c As Range
Application.ScreenUpdating = False
retour = MsgBox(Prompt:="Vider les tableaux?", Buttons:=vbOKCancel)
If retour = vbOK Then
For Each tbl In ActiveSheet.ListObjects
On Error Resume Next
tbl.UsedRange.Value = vbNullString
On Error GoTo 0
Next tbl
End If
Application.ScreenUpdating = True
End Sub
关于excel - 优化宏: table clear content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51156672/