如何在 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. 接著點擊確定按鈕,系統將依照您設定的間隔,在選取區域內插入空白列,如下圖所示:
![]() | ![]() | ![]() |
優點:此解決方案操作簡便、無需編寫程式碼,特別適合經常需要調整欄列結構的使用者。
使用 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 次
- 在日常工作中,您是否曾想複製某一列(或所有列),並在目前資料列下方重複插入多次?舉例來說,我有一個儲存格範圍,現在希望將每一列複製並貼上三次到下一列,如下圖所示。在 Excel 中,該如何快速完成這項操作?
- 在 Excel 中,當數值變更時插入空白列
- 假設您有一組資料,希望在數值變更的位置插入空白列,以分隔同一欄中連續相同的數值(如下圖所示)。本文將介紹幾種實用技巧,協助您輕鬆達成此目標。
- 在 Excel 中特定文字後插入一列空白行
- 想在特定文字後快速插入空白列(如下圖所示),又不想逐一手動操作,該怎麼輕鬆達成?
- 根據條件從多個工作表複製列至新工作表
- 假設您有一個包含三張工作表的活頁簿,其格式如下圖所示。現在,您希望將這些工作表中 C 欄含有「Completed」的所有列,快速複製到一個新工作表。該如何輕鬆達成此目標,而不必逐一手動複製貼上?
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 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 中啟用分頁式編輯與閱讀功能,以及 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 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用






