我无法将工作表上的表添加到AllowEditRanges。我知道添加它的语法如下:ActiveSheet.Protection.AllowEditRanges.Add Title:="Range1", Range:=Range("Table1353")
,但我将定期创建新的工作表,每个工作表都有一个表。我需要它来抓取工作表上的表并添加它。不确定下面的代码是否可以这样做,但我在代码行ActiveSheet.Protection.AllowEditRanges.Add Title:="TableSort", Range:=.DataBodyRange
上收到调试错误 - “对象变量和未设置块变量”。任何指导都将不胜感激。
Sub AddNewAER()
Dim aer As AllowEditRange
Dim tbl As ListObject
Dim sh As Worksheet
Set sh = ThisWorkbook.ActiveSheet
On Error Resume Next
On Error GoTo 0
For Each aer In ActiveSheet.Protection.AllowEditRanges
aer.Delete
Next aer
With tbl
ActiveSheet.Protection.AllowEditRanges.Add Title:="TableSort", Range:=.DataBodyRange
End With
End Sub
答案 0 :(得分:0)
tbl
被声明为ListObject但不是Set
。因此错误。
Set tbl = ActiveSheet.ListObjects("Table1")
。
此外,
tbl
本身就是ListObject,因此tbl.ListObject
无效。
这样做:
With tbl
ActiveSheet.Protection.AllowEditRanges.Add Title:="TableSort", Range:=.DataBodyRange
End With