Как сохранить возможность расширения таблицы путем вставки строки таблицы на защищенном листе в Excel?
В Excel, когда вы защищаете лист, функция автоматического расширения таблиц часто отключается. Например, если у вас есть таблица с именем Таблица1, и вы пытаетесь добавить данные под последней строкой на защищенном листе, таблица не будет автоматически расширяться, чтобы включить новую строку. Однако существует способ сохранить возможность расширения вашей таблицы даже на защищенном листе. Это руководство проведет вас через шаги для включения автоматического расширения вашей таблицы, пока лист остается защищенным.
Сохранение возможности расширения таблицы путем вставки строки таблицы на защищенном листе с помощью кода VBA
Как показано на скриншоте ниже, таблица с именем Таблица1 на вашем листе, и последний столбец таблицы является столбцом формул. Теперь вам нужно защитить лист, чтобы предотвратить изменение столбца формул, но при этом разрешить расширение таблицы путем вставки новой строки и назначения новых данных в новые ячейки. Пожалуйста, действуйте следующим образом.
1. Нажмите Разработчик > Вставить > Кнопка (Элемент управления формы), чтобы вставить кнопку элемента управления формы на ваш лист.
2. В появившемся диалоговом окне Назначить макрос нажмите кнопку Создать.
3. В окне Microsoft Visual Basic for Applications, пожалуйста, скопируйте и вставьте приведенный ниже код VBA между параграфами Sub и End Sub в окне Код.
Код VBA: Сохранение возможности расширения таблицы путем вставки строки таблицы на защищенном листе
'Update by ExtendOffice 20220826
Dim xRg, tableRg As Range
Dim xRowCount As Integer
Dim pswStr As String
pswStr = "123"
On Error Resume Next
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:=pswStr
Set tableRg = ActiveSheet.ListObjects("Table4").Range
xRowCount = tableRg.Rows.Count
Set xRg = Range("Table4[[#Headers],[Total]]").Offset(1, 0)
Set yRg = xRg.Resize(xRowCount, 1)
xRg.Resize(xRowCount - 1, 1).AutoFill Destination:=yRg, Type:=xlFillDefault
ActiveSheet.Protect Password:=pswStr, DrawingObjects:=False, _
Contents:=True, Scenarios:=False, _
AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, _
AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=True, AllowDeletingRows:=True, _
AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Application.ScreenUpdating = True
Примечания:
4. Нажмите клавиши Alt + Q, чтобы закрыть окно Microsoft Visual Basic for Applications.
5. Выберите ячейки в таблице, которым нужно назначить новые данные, кроме столбца формул, затем нажмите клавиши Ctrl + 1, чтобы открыть диалоговое окно Формат ячеек. В диалоговом окне Формат ячеек снимите флажок Заблокировать, а затем нажмите кнопку ОК. См. скриншот:
6. Теперь защитите ваш лист с помощью пароля, указанного вами в коде VBA.
С этого момента, после нажатия кнопки Элемента управления формой на вашем защищенном листе, таблица станет расширяемой путем вставки новой строки, как показано на скриншоте ниже.
Примечание: вы можете изменять таблицу, кроме столбца формул, на защищенном листе.
Связанные статьи:
- Как заставить срез сводной таблицы перемещаться вместе с прокруткой листа в Excel?
- Как объединить ячейки и сохранить форматирование ячеек в Excel?
- Как удалить дубликаты, но оставить первое вхождение в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!