如何在 Excel 中按固定间隔插入指定数量的行?
在 Excel 工作表中,您可以使用内置的“插入”功能手动在现有行之间添加空白行。然而,当处理大量数据,或需要定期(例如每第三行或第 n 行后)插入两行空白行时,手动操作不仅耗时,还容易出错。以固定间隔自动插入空白行,不仅能节省时间、减少错误,还能让工作流程更加高效顺畅。以下方法将为您展示如何快速便捷地完成此任务,包括基于特定条件或重复行插入空白行的解决方案(含 VBA 与不含 VBA)。
➤ 使用 VBA 代码在固定间隔处向数据区域中插入指定数量的空白行
➤ 使用 VBA 代码根据单元格值向数据区域中插入指定数量的空白行
➤ 使用便捷功能在固定间隔处向数据区域中插入指定数量的空白行
➤ 使用 Excel 公式在固定间隔处插入指定数量的空白行
➤ 使用 VBA 代码根据特定数值多次复制并插入行
➤ 使用强大功能根据特定数值多次复制并插入行
使用 VBA 代码在数据区域中以固定间隔插入指定数量的空白行
以下 VBA 代码可助您在现有数据区域中,自动于每第 n 行后插入指定数量的空白行。此方法专为熟悉宏操作、且需高效处理中大型数据集的用户量身打造。请按以下步骤操作:
1. 在 Excel 中按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,并将以下代码粘贴到模块窗口中。
VBA 代码:在数据中以固定间隔插入指定数量的行
Sub InsertRowsAtIntervals()
'Updateby Extendoffice
Dim Rng As Range
Dim xInterval As Integer
Dim xRows As Integer
Dim xRowsCount As Integer
Dim xNum1 As Integer
Dim xNum2 As Integer
Dim WorkRng As Range
Dim xWs As Worksheet
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xRowsCount = WorkRng.Rows.Count
xInterval = Application.InputBox("Enter row interval. ", xTitleId, 1, Type:=1)
xRows = Application.InputBox("How many rows to insert at each interval? ", xTitleId, 1, Type:=1)
xNum1 = WorkRng.Row + xInterval
xNum2 = xRows + xInterval
Set xWs = WorkRng.Parent
For i = 1 To Int(xRowsCount / xInterval)
xWs.Range(xWs.Cells(xNum1, WorkRng.Column), xWs.Cells(xNum1 + xRows - 1, WorkRng.Column)).Select
Application.Selection.EntireRow.Insert
xNum1 = xNum1 + xNum2
Next
End Sub
3. 粘贴代码后,按 F5 运行代码,将弹出一个提示框,要求您选择要插入空白行的数据区域,如下图所示:

4. 单击确定后,将弹出另一个提示框,请输入所需的行间隔——例如,输入 3 即可在每三行后插入空白行:

5. 继续单击确定,然后在代码提示时输入要插入的空白行数量(例如,输入 2 即可插入两行):

6. 确认选择后,系统将按指定间隔在您的数据中插入空白行,前后效果对比如下:
![]() | ![]() | ![]() |
提示与注意事项:
- 此宏让您灵活选择数据区域,并自定义行间隔及要插入的空白行数量。
- 请务必备份工作表,或先在示例工作表上尝试——插入行是不可逆的操作,除非立即使用“撤销”命令。
故障排除:如遇错误,请确保数据未被筛选,且所选区域无表格重叠;若出现意外结果,请立即使用“撤销”命令还原更改。
根据单元格值使用 VBA 代码在数据区域中插入指定数量的空白行
有时,您的工作流可能需要根据预定义的单元格值列表插入空白行——例如,在每条匹配记录后自动插入一行。当插入逻辑取决于相邻列中的值,而非固定间隔时,此 VBA 解决方案尤为理想。
✅ 适用场景:
- 当您的数据按类别(如部门、项目阶段或销售代表)组织,并需在各组之间插入间距或空白行时,推荐使用此方法。
- 请务必确保所选区域准确无误,因为宏将依据所选单元格来确定插入行的位置。
1 在 Excel 中按住 ALT + F11 键,打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,并将以下代码粘贴到弹出的模块窗口中。
VBA 代码:根据数字列表插入指定数量的空白行:
Sub Insertblankrowsbynumbers ()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xAddress As String
Dim I, xNum, xLastRow, xFstRow, xCol, xCount As Long
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the spefic number column to use(single column):", "Kutools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
xLastRow = xRg(1).End(xlDown).Row
xFstRow = xRg.Row
xCol = xRg.Column
xCount = xRg.Count
Set xRg = xRg(1)
For I = xLastRow To xFstRow Step -1
xNum = Cells(I, xCol)
If IsNumeric(xNum) And xNum > 0 Then
Rows(I + 1).Resize(xNum).Insert
xCount = xCount + xNum
End If
Next
xRg.Resize(xCount, 1).Select
Application.ScreenUpdating = True
End Sub
3. 粘贴后,按 F5 运行代码,在弹出的对话框中选择应据此插入空白行的数字列表(或相关单元格)。

4. 然后,单击确定,即可看到如下方截图所示的预期结果:
![]() | ![]() | ![]() |
错误提醒:若引用列表中包含空单元格或非数值数据,请在运行此宏前检查代码逻辑或清理数据,以免出错。
使用便捷功能,在固定间隔处插入指定数量的空白行到数据区域中
如果您不想使用 VBA,或希望采用更直观、交互性更强的方法,Kutools for Excel 提供了专用的插入空白行/列工具。只需简单点击,即可在整个数据区域中按设定间隔插入空白行或列,显著提升工作效率,尤其适用于重复性报表或格式化任务。
安装 Kutools for Excel 后,请按以下步骤操作:
1. 选择要在固定间隔处插入空白行的数据区域。
2. 转到 Kutools > 插入 > 插入空白行/列,如下图所示:

3. 在“插入空白行和列”对话框中,选择空白行下的插入类型,然后指定间隔及要插入的空白行数量,如下图所示:

注意:该设置非常灵活。如果您需要每 4 行数据后插入 2 行空白行,请将间隔设为 4,空白行数量设为 2.
4. 然后单击确定按钮,空白行将按您指定的间隔插入到所选区域中,如下图所示:
![]() | ![]() | ![]() |
优势:该解决方案操作简便、无需编码,特别适合需要频繁调整行或列结构的用户。
使用 Excel 公式在固定间隔处插入指定数量的空白行
即使无法使用宏或加载项,您仍可通过辅助列结合 Excel 内置函数(如 )MOD 和 ROW),轻松实现按固定间隔插入空白行的目标。当脚本受限但基本公式与排序功能可用时,此方法尤为实用!
✅ 适用场景:适用于希望保持工作簿无宏、追求广泛兼容性,或需为导入/导出工作流准备数据(通过空白行实现视觉分隔)的用户。
⚠️ 注意事项:此方法并非真正插入空白行,而是通过添加额外行并配合辅助公式来模拟空白行效果。后续需对数据进行排序,以正确排列这些模拟的空白行。该方法适用于中小型数据集。
步骤:
- 假设您的数据位于单元格 A2:B11 中。在新的辅助列(例如从 C2 开始的 C 列)中,输入以下公式:
将=INT((ROW()-ROW($A$2))/(n+1))n替换为您希望插入空白行的间隔数。例如,若要在每 3 行后插入一个空白行,请使用:=INT((ROW()-ROW($A$2))/3) - 将公式向下拖动至整个数据集旁,即可自动分配组号。
- 在最后一行数据下方添加额外的行,并在 A 列和 B 列中填入空白值;在 C 列(辅助列)中输入与现有组号匹配的组号,以确保这些空白行被正确归入相应分组。
- 选择完整范围(原始数据 + 添加行),然后按辅助列排序,并根据需要设置次要排序。此时,空白行将出现在每 n 行数据之后。
🟡 错误提醒:
- 请务必为您的空白行分配正确的组号——编号不匹配将导致它们出现在意想不到的位置。
- 请注意,此方法仅在排序后添加物理行,因此请在保存或导出前确认最终布局。
总结与提示:虽然不如 VBA 或 Kutools 等工具高效,但这种基于公式的方案具备出色的通用兼容性,且无需依赖脚本。对于偶尔执行的轻量级任务,它提供了一种简单灵活的替代方案,轻松上手,即刻可用!
使用 VBA 代码根据特定数值多次复制并插入行
如果您的任务不仅需要插入空白行,还需要根据单独的数值列表将现有数据行复制并插入指定次数,以下 VBA 代码提供了一种实用的自动化方法。此方法特别适用于销售订单、场景模拟或资源规划中的条目复制。
![]() | ![]() | ![]() |
请按以下详细步骤操作:
1. 在 Excel 中按住 ALT + F11,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 单击插入> 模块,然后将下方代码粘贴到模块窗口中。
VBA 代码:根据特定数值多次复制并插入行:
Sub CopyRows()
'UpdatebyExtendoffice
Dim xRg As Range
Dim xCRg As Range
Dim xFNum As Integer
Dim xRN As Integer
On Error Resume Next
SelectRange:
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select the list of numbers to copy the rows based on: ", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Then
MsgBox "Please select single column!"
GoTo SelectRange
End If
Application.ScreenUpdating = False
For xFNum = xRg.Count To 1 Step -1
Set xCRg = xRg.Item(xFNum)
xRN = CInt(xCRg.Value)
With Rows(xCRg.Row)
.Copy
.Resize(xRN).Insert
End With
Next
Application.ScreenUpdating = True
End Sub
注意事项:运行可能导致重复行的 VBA 脚本前,请务必备份数据——这些脚本会快速复制数据,且操作可能无法轻松撤销。
3. 代码就位后,按 F5 运行宏,在对话框中选择表示每行需复制插入次数的数值列表。

4. 单击确定,指定数量的行将被复制并插入到每个原始行下方,如下图所示:
![]() | ![]() | ![]() |
提示:此解决方案最适合数据准备任务,不适用于实时录入——因为在执行其他无关操作后,VBA 宏将无法撤销。
使用强大功能根据特定数值多次复制并插入行
对于希望复制和插入行过程直观且无需编程技能的用户,Kutools for Excel 的根据指定数据复制或插入行列功能是高效之选。该工具让您轻松指定要复制的行或列及其重复次数,所有操作均可基于引用单元格值或列表,仅需几次简单选择即可完成!
安装 Kutools for Excel 后,请按以下步骤操作:
1. 转到 Kutools > 插入 > 根据指定数据复制或插入行列,如下图所示:

2. 在复制并插入行或列对话框中,选择复制并插入行作为类型,指定要复制的数据区域,并设置用作复制依据的数值列表,如下图所示:

提示:此功能可用于生成测试样本、复制交易模板,或在无需复杂脚本的情况下快速复制设置与记录。
4. 最后,单击确定或应用,即可生成如下所示的输出:
![]() | ![]() | ![]() |
注意:请确保您的数值列表与数据准确对应,以获得预期结果。
更多相关文章:
- 多次复制并插入行,或将行重复 X 次
- 在日常工作中,您是否曾需要将某一行(或每一行)复制,并在当前数据行下方多次插入?例如,我有一个单元格区域,希望将每一行复制后粘贴到下一行,并重复 3 次,如下图所示。在 Excel 中,如何高效完成这一操作?
- 在 Excel 中数值变化时插入空白行
- 假设您有一组数据,希望在数值发生变化时自动插入空白行,以分隔同一列中连续的相同值(如下图所示)。本文将为您介绍几种实用技巧,轻松实现这一目标。
- 在 Excel 中特定文本后插入空白行
- 如果您希望在特定文本后自动插入空白行(如下图所示),如何才能快速轻松地实现,而无需逐一手动操作?
- 根据条件从多个工作表复制行到新工作表
- 假设您有一个包含三个工作表的工作簿,其格式如下图所示。现在,您希望将这些工作表中 C 列包含“Completed”文本的所有行复制到一个新工作表中。如何快速轻松地解决此问题,而无需逐一手动复制粘贴?
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 将您的工作效率提升 50%,每天减少数百次鼠标点击!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱






