How to disable ability to insert row and column in Excel?
Normally, we can insert rows and columns between existing data quickly and easily, if you prevent others inserting columns or rows in a worksheet, may be you can protect sheet to disable the insert rows or columns function. But, how could you disable the insert row and column function without protecting sheet?
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
The following VBA code can help you to disable the inserting row and column function in Excel workbook, please do as this:
1. Press Alt + F11 to open a Microsoft Visual Basic for Application window.
2. Click Insert > Module to open a Module window, then copy the following VBA to the window.
VBA code: prevent inserting rows and columns:
Sub NoInsert() 'Updateby Extendoffice 20161215 Dim I As Integer Dim cbStr As String Dim cbCtrl As CommandBarControl Application.ScreenUpdating = False For I = 1 To 2 If I = 1 Then cbStr = "row" Else cbStr = "column" End If For Each cbCtrl In Application.CommandBars(cbStr).Controls If cbCtrl.ID = 3183 Then cbCtrl.Enabled = False End If Next Next Application.ScreenUpdating = True End Sub
3. Press F5 key to run this code, now when you right click to going to insert rows or columns, the Insert option cannot be applied in the context menu. See screenshot:
1. This VBA will disable the Insert function in the context menu in all workbooks when you right click to insert rows or columns.
2. To restore the Insert command in the context menu, please apply the following code:
Sub NoInsert() 'Updateby Extendoffice 20161215 Dim I As Integer Dim cbStr As String Dim cbCtrl As CommandBarControl Application.ScreenUpdating = True For I = 1 To 2 If I = 1 Then cbStr = "row" Else cbStr = "column" End If For Each cbCtrl In Application.CommandBars(cbStr).Controls If cbCtrl.ID = 3183 Then cbCtrl.Enabled = True End If Next Next Application.ScreenUpdating = True End Sub