求受保护工作表中添加数据后自动调整Excel表格大小的VBA代码
受保护工作表中批量扩展表格的VBA代码
以下是修改后的代码,支持指定新增行数,同时适配工作表保护状态:
Sub ExtendTable() Dim ws As Worksheet Dim tbl As ListObject Dim numRows As Integer ' 设置需要新增的行数,可修改为10、100等任意数值 numRows = 10 Set ws = ActiveSheet Set tbl = ws.ListObjects("PortfolioTracker") ' 解锁工作表 ws.Unprotect Password:="XXXX" ' 批量添加指定行数的表格行 tbl.ListRows.Add Count:=numRows ' 解锁新增行的单元格,确保保护后可编辑 tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count - numRows + 1, 1).Resize(numRows, tbl.ListColumns.Count).Locked = False ' 重新保护工作表,同时允许使用列表功能(确保表格操作正常) ws.Protect Password:="XXXX", AllowUsingPivotTables:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingLists:=True End Sub
关键说明:
- 直接通过
ListRows.Add Count:=numRows批量添加指定行数,比循环添加更高效 - 新增行后统一解锁对应单元格区域,确保工作表保护后仍能编辑这些行
- 重新保护时添加了
AllowUsingLists:=True等参数,保证表格的排序、筛选等功能在保护状态下仍可用 - 可根据需求修改
numRows变量的值,实现10行、100行等不同批量扩展需求
内容的提问来源于stack exchange,提问作者allthem
相关产品推荐
相关产品推荐

