我在將工作表上的表格添加到AllowEditRanges時遇到問題。我知道添加它的語法如下所示:ActiveSheet.Protection.AllowEditRanges.Add Title:="Range1", Range:=Range("Table1353")
,但我將定期創建新的工作表,並且每個工作表都有一個表。我需要它來抓住工作表上的表格並添加它。不知道下面的代碼是否是這樣做的,但是我在代碼行ActiveSheet.Protection.AllowEditRanges.Add Title:="TableSort", Range:=.DataBodyRange
- 「對象變量並且未設置塊變量」時出現調試錯誤。任何指導將不勝感激。Excel VBA:刪除並添加允許用戶編輯動態表格的範圍
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
感謝。我更新了代碼,我仍然得到調試錯誤行'ActiveSheet.Protection.AllowEditRanges.Add標題:=「TableSort」,範圍:=。DataBodyRange'。我試圖避免調用表名。我不想每次創建新表時都要更改宏。我應該爲此做一個For Each語句嗎?我試過了,我仍然得到該行的調試錯誤。謝謝。 – DigitalSea
即使工作表中只有一個表,您也可以使用'Set tbl = ActiveSheet.ListObjects(1)' – PankajR