如何在Excel中根据单元格值自动插入行?


让我们假设我们遇到一种情况,需要在指定值的上方或下方插入一行。Excel 默认情况下无法完成此操作,因此我们将借助 VBA 应用程序来完成此过程。阅读本教程,了解如何根据单元格值在 Excel 中自动插入行。如果尝试手动完成此任务,则可能非常耗时,因为插入新行是一个多步骤的过程。

根据单元格值在Excel中自动插入行

在这里,我们将首先插入一个 VBA 模块,然后运行代码来完成任务。让我们来看一个简单的过程,了解如何根据 Excel 中的单元格值在下方插入一行。

步骤 1

让我们考虑一个 Excel 表格,其中数据类似于下图所示的数据。

现在右键单击工作表名称并选择“查看代码”以打开 VBA 应用程序,然后单击“插入”并选择“模块”,然后将程序键入文本框中,如下图所示。

示例

Sub BlankLine() 'Updated by Nirmal Dim Rng As Range Dim WorkRng As Range On Error Resume Next xTitleId = "Enter the value" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Set WorkRng = WorkRng.Columns(1) xLastRow = WorkRng.Rows.Count Application.ScreenUpdating = False For xRowIndex = xLastRow To 1 Step -1 Set Rng = WorkRng.Range("A" & xRowIndex) If Rng.Value = "10000" Then Rng.Offset(1, 0).EntireRow.Insert Shift:=xlDown End If Next Application.ScreenUpdating = True End Sub

在代码中,10000 是您要插入单元格的值。

步骤 2

将工作表另存为启用宏的工作表,然后按 F5 键运行代码。将出现一个弹出窗口;选择应应用代码的范围,我们的最终输出将类似于下图中的数据。

我们可以看到,新行已插入到下方。要在单元格上方插入行,请使用以下代码:

示例

Sub BlankLine() 'Update by Nirmal Dim Rng As Range Dim WorkRng As Range On Error Resume Next xTitleId = "Enter the range" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type: = 8) Set WorkRng = WorkRng.Columns(1) xLastRow = WorkRng.Rows.Count Application.ScreenUpdating = False For xRowIndex = xLastRow To 1 Step - 1 Set Rng = WorkRng.Range("A" & xRowIndex) If Rng.Value = "0" Then Rng.EntireRow.Insert Shift: = xlDown End If Next Application.ScreenUpdating = True End Sub

结论

在本教程中,我们使用了一个简单的示例来演示如何在 Excel 中根据单元格值插入行。

更新于:2023年1月10日

6K+ 浏览量

启动您的职业生涯

完成课程获得认证

开始学习
广告