gpt4 book ai didi

excel - 优化宏: table clear content

转载 作者:行者123 更新时间:2023-12-03 03:20:12 25 4
gpt4 key购买 nike

我经常使用 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

最佳答案

我找到了这个解决方案。如果满足以下条件,则它有效:

  1. 您首先解锁所有手机
  2. 接下来,保护您不想清除的细胞
  3. 最后,您需要使用第一个选项添加工作表保护

enter image description here

之后,您可以应用这个简单的代码:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com