跳至頁尾內容
EXCEL 工具

如何在 Excel 中固定行:實際有效的 5 種方法

Iron Software團隊撰寫


如果您曾經在長電子表格中向下捲動並變得無法分辨各欄位,那麼您已經知道這個問題。 在Excel中釘住或"凍結"一行會讓您的標題行鎖定在適當位置,而其他內容可以自由捲動。 這種凍結功能是在Excel中保持重要資料可見的關鍵功能,有助於您更有效地管理大型電子表格。

最快的方法:在第2行中點擊任意單元格,前往檢視 → 凍結窗格 → 凍結頂端行。 完成。 第1行現在已經被釘住。 這可以確保您的標題在您捲動資料時依然可見。

這就是簡單的答案。 但根據您所使用的Excel版本、您的特定佈局或您是否需要凍結多行,還有一些細微的差別。 本指南涵蓋了從單擊功能區的快捷方法到鍵盤快捷鍵、VBA宏,以及一些基本教程總是不包括的邊界情況。 *

目錄

  1. 在Excel中"釘住一行"實際意味著什麼
  2. 方法1:凍結頂端行(功能區—最快)
  3. 方法2:一次凍結多行
  4. 方法3:凍結窗格鍵盤快捷方式
  5. 方法4:同時凍結行和列
  6. 方法5:自動凍結一行的VBA宏
  7. 如何在Excel中解除行凍結
  8. 常見問題和故障排除
  9. 對於開發人員:通過IronXL程式設置行凍結 *

在Excel中"釘住一行"實際意味著什麼

在Excel的選單中,釘住功能稱為凍結窗格。 這個功能允許您將特定行固定在工作表的頂端。 這兩個術語在日常對話中意味著同樣的事情:鎖住一行(或多行)以便它們在您向下捲動時保持可見。

當一行被凍結時,會在其下方顯示一條細暗線,將鎖定區段與可捲動區域分開。 凍結的行在您瀏覽電子表格時始終保持可見,無論您捲動多遠,都會停留在螢幕頂端。

您可以選擇凍結特定行以保持重要資訊在捲動時固定,這樣可以更輕鬆地管理大型電子表格。

快速提示:凍結是一種僅影響導航的顯示設置。 您的資料、公式和列印輸出保持不變。 *

方法1:凍結頂端行(功能區—最快)

這是您90%時間想使用的方法。如果您的標題在第1行,這只需一次點擊。

步驟:

  1. 在Excel中打開您的電子表格。
  2. 在頂部的功能區中選擇檢視選項卡。

  3. 窗口群組中,點擊凍結窗格按鈕。

  4. 在凍結窗格下拉選單中,選擇凍結頂端行

就是這樣。 一條細線會顯示在第1行下方,它會在您捲動時保持不變。 此方法可以將您希望保持可見的行凍結在頂端。

注意:如果您在點擊凍結窗格按鈕之前選擇了第2行的任意單元格,Excel將凍結第1行。

此方法適合誰:任何標題列位於第1行的人,這涵蓋了絕大多數標準電子表格設置。

此方法不適合誰:如果您的標題開始於第3行或第4行(因為您在它們上方有公司標誌或標題塊),此方法會凍結錯誤的行。 對此情況,請使用下面的方法2。

如何在Excel中釘住一行:5種真正有效的方法:圖1 - 顯示凍結窗格下拉選單打開的檢視選項卡功能區


方法2:一次凍結多行

需要鎖住前三行嗎? 或凍結跨越第1至第5行的標題塊嗎? Excel能夠乾淨地處理這個問題,並且您可以一次凍結多行。如果您想同時凍結幾行和幾列,Excel的凍結窗格功能讓您可以同時做到這兩點。 這裡有一個快速提示:要凍結多行或多列,總是選擇您希望保持可見的最後一行或最後一列的下方和右側的單元格。

規則:點擊您不想凍結的第一行。 Excel將鎖定您的選擇以上的所有內容。

步驟:

  1. 點擊應自由滾動的第一行中的行號(或任何單元格)。 要凍結多行,請選擇您希望凍結的最後一行的下方的行。
  • 範例:要凍結第1至第3行,請點擊第4行上的任意位置。
  1. 前往檢視 → 凍結窗格 → 凍結窗格(列表中的第一選項,不是"凍結頂端行")。

您選擇的行以上的所有行現在已經被凍結。

如何在Excel中釘住一行:5種真正有效的方法:圖2 - 行選擇器顯示第4行突出顯示,並且凍結窗格功能表開啟顯示

注意:要凍結多行,請遵循這些步驟:點擊您希望凍結的行下面的行號,然後再導航到檢視選項卡並選擇凍結窗格。 確保您選擇了正確的行以免凍結錯誤部分。 這裡有一些提示:在應用凍結窗格之前雙重檢查您的選擇,並且記住您可以通過選擇合適的單元格同時凍結幾行和幾列。 這將有助於您保持重要資料可見並改善您的工作流程。

重要區別:"凍結頂端行"始終凍結第1行,不管光標在哪。 "凍結窗格"會凍結您當前選擇以上的所有內容。 如有疑問,使用"凍結窗格"。 *

方法3:鍵盤快捷鍵凍結窗格

Excel使用一個可靠的按鍵序列來凍結行,讓您不需要點擊滑鼠就能完成。 請確保小心地遵循以下步驟以確保凍結正確的行。

快捷鍵序列(Windows):

Alt → W → F → F
Alt → W → F → F
Alt → W → F → F
$vbLabelText   $csharpLabel

按下每個鍵(不是同時):

  • Alt — 啟動功能區鍵盤導航
  • W — 打開檢視選項卡
  • F — 打開凍結窗格功能表
  • F — 選擇"凍結窗格"

針對凍結頂端行特定操作:

Alt → W → F → R
Alt → W → F → R
Alt → W → F → R
$vbLabelText   $csharpLabel

針對凍結首列

Alt → W → F → C
Alt → W → F → C
Alt → W → F → C
$vbLabelText   $csharpLabel

如何在Excel中釘住一行:5種真正有效的方法:圖3 - Excel功能區顯示為鍵盤快捷鍵字幕(Alt鍵提示)覆蓋,演示凍結窗格

Mac使用者:Mac上沒有等效的Alt鍵快捷方式。 最接近的方法是使用功能表:檢視 → 凍結行與列(Mac Excel使用的術語略有不同但功能相同)。 您還可以通過系統設置 → 鍵盤 → 鍵盤快捷鍵 → 應用程式快捷鍵設定自定義鍵盤快捷鍵。 *

方法4:同時凍結行和列

有時您需要標題行_和_最左側的列(如員工ID或帳號)在向任意方向捲動時保持可見。 這一方法對同時凍結行和列很有用,尤其是當您想一起凍結幾行和幾列時。 Excel只需一步操作即可解決這個問題。

步驟:

  1. 選擇您希望凍結的最後一行的下方和最後一列的右側的單元格。 這就是您如何選擇多行和多列的凍結窗格。
  • 範例:若要凍結第1行和第A列,點擊單元格B2
  • 凍結第1至2行和第A到B列,點擊單元格C3
  1. 前往檢視 → 凍結窗格 → 凍結窗格

Excel將凍結您選擇的單元格左側和以上的所有內容,使這些行和列在您捲動時保持不變和可見。 您將看到兩條凍結線,一條水平,一條垂直。

注意:作為替代方案,您可以使用拆分窗格以同時查看工作表的不同部分。拆分窗格建立了獨立的視窗區段,允許您分別捲動每個區段。

實際使用情況:財務模型、庫存表和項目追蹤往往受益於此。 凍結第A列(姓名或ID)加上第1行(標題)意味著向右或向下捲動時不必猜測自己的所在。 *

方法5:自動凍結一行的VBA宏

如果您管理多個電子表格且希望在每次打開文件時自動應用凍結設定,一個簡單的VBA宏可以解決這個問題。 這對於您分發工作簿給同事時特別有用,讓視圖設置直接生成。

設置方法:

  1. Alt + F11開啟VBA編輯器。

  2. 在左側面板中,雙擊ThisWorkbook(在文件名下方)。

  3. 貼上以下程式碼:
Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        ws.Rows("2:2").Select
        ActiveWindow.FreezePanes = True
    Next ws
    ThisWorkbook.Worksheets(1).Activate
End Sub
Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        ws.Rows("2:2").Select
        ActiveWindow.FreezePanes = True
    Next ws
    ThisWorkbook.Worksheets(1).Activate
End Sub
Option Strict On



Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Activate()
        ws.Rows("2:2").Select()
        ActiveWindow.FreezePanes = True
    Next ws
    ThisWorkbook.Worksheets(1).Activate()
End Sub
$vbLabelText   $csharpLabel
  1. 關閉VBA編輯器並將文件保存為.XLSM(支持宏的工作簿)。

此宏會在工作簿打開時自動運行並凍結所有工作表的第1行。

要只凍結特定行(而不是所有表):

Sub FreezeRow()
    Sheets("Sheet1").Activate
    ActiveSheet.Rows("2:2").Select
    ActiveWindow.FreezePanes = True
End Sub
Sub FreezeRow()
    Sheets("Sheet1").Activate
    ActiveSheet.Rows("2:2").Select
    ActiveWindow.FreezePanes = True
End Sub
Sub FreezeRow()
    Sheets("Sheet1").Activate()
    ActiveSheet.Rows("2:2").Select()
    ActiveWindow.FreezePanes = True
End Sub
$vbLabelText   $csharpLabel

手動運行此功能:Alt + F8 → 選擇"FreezeRow" → 執行

注意:宏要求您保存為.XLSM,根據您組織的設置可能會觸發安全警告。 如果您的公司禁用了宏,請堅持使用方法1-4。

如果您需要更高級的自動化或者在VBA中遇到問題,請考慮詢問Excel專家以獲得個性化的幫助和故障排除。 *

如何在Excel中解除行凍結

如果要消除凍結的行,請前往檢視選項卡,點擊凍結窗格按鈕,然後選擇解除凍結窗格。

解除凍結比凍結更容易。 無論您凍結了多少行或列:

  1. 前往檢視 → 凍結窗格
  2. 現在第一選項將顯示解除凍結窗格(當某些內容已凍結時,它會替換"凍結窗格")。

  3. 點擊它。 所有內容立即解除凍結。

解除凍結的快捷鍵: Alt → W → F → F(與凍結相同 — Excel根據當前狀態切換)。 *

常見問題及故障排除

"凍結頂端行"顯示為灰色

這幾乎總是意味著以下兩件事之一:

  • 您處於單元格編輯模式。 先按Escape,然後重試。
  • 工作簿受保護。 前往審查 → 取消保護工作表(如果設置了密碼,您需要輸入密碼)。 在受保護的表上,無法更改凍結設置。
    • *

凍結線出現在錯誤的位置

當您的光標位於意想不到的位置時,使用"凍結窗格"(而不是"凍結頂端行")會發生此情況。 解決方案:首先解除所有窗格凍結,然後小心選擇正確的單元格再重新應用。 *

凍結的行不會列印,且在第2頁以上頁面上標題消失

凍結窗格和列印重複標題是兩個獨立的功能。 凍結只影響螢幕。 若要在每個列印的頁面上重複一行:

  1. 前往頁面佈局 → 列印標題
  2. "頂端重複的行"框中點擊。

  3. 點擊電子表中的行號。
  4. 點擊確認 *

排序或篩選資料時凍結線移動

這不應該發生,凍結窗格是固定在行/列位置上,而不是特定的單元格內容。 如果它似乎在移動,最可能的原因是您在不同位置解除和重新凍結。 解除凍結,整理您的資料,然後重新應用凍結。


凍結線可見但行依然可以捲動

檢查您是否在使用拆分而不是凍結。 檢視選項卡中有這兩個選項,它們看起來相似。 拆分會建立兩個可獨立捲動的窗格,拆分線上方的行仍然可以移動。 點擊檢視 → 拆分切換關閉,然後使用凍結窗格。 *

Excel Online / Microsoft 365網頁版

網頁版的Excel支持凍結窗格,但選單位置略有不同。 看看在檢視 → 凍結行與列(或檢視 → 凍結窗格下,視您的瀏覽器和帳戶型別而定)。 並非所有鍵盤快捷鍵都可在瀏覽器版本中使用。 *

對於開發人員:通過IronXL程式設置行凍結

如果您正在開發一個生成Excel文件、報告、導出或儀表板的.NET應用程式,且希望自動應用凍結窗格而不需使用者手動設置,IronXL使得這變得非常簡單。

IronXL是一個C# Excel程式庫,讓您能在不需要在伺服器上安裝Microsoft Office的情況下建立、讀取和修改Excel文件。 凍結窗格設置在工作表級別上應用,讓您能輕鬆分享已設置凍結功能的電子表格,如"凍結頂端行"或"凍結窗格"。

範例:在導出報告上凍結頂端行

using IronXL;
// Load or create a workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Add header row
sheet["A1"].Value = "Order ID";
sheet["B1"].Value = "Customer";
sheet["C1"].Value = "Amount";
sheet["D1"].Value = "Date";
// Populate data rows
for (int i = 2; i < = 100; i++)
{
    sheet[$"A{i}"].Value = i - 1;
    sheet[$"B{i}"].Value = $"Customer {i - 1}";
    sheet[$"C{i}"].Value = (i * 15.50).ToString("C");
}
// Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1); // column split = 0, row split = 1
// Save the file
workbook.SaveAs("OrderReport.xlsx");
using IronXL;
// Load or create a workbook
WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet sheet = workbook.DefaultWorkSheet;
// Add header row
sheet["A1"].Value = "Order ID";
sheet["B1"].Value = "Customer";
sheet["C1"].Value = "Amount";
sheet["D1"].Value = "Date";
// Populate data rows
for (int i = 2; i < = 100; i++)
{
    sheet[$"A{i}"].Value = i - 1;
    sheet[$"B{i}"].Value = $"Customer {i - 1}";
    sheet[$"C{i}"].Value = (i * 15.50).ToString("C");
}
// Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1); // column split = 0, row split = 1
// Save the file
workbook.SaveAs("OrderReport.xlsx");
Imports IronXL

' Load or create a workbook
Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim sheet As WorkSheet = workbook.DefaultWorkSheet

' Add header row
sheet("A1").Value = "Order ID"
sheet("B1").Value = "Customer"
sheet("C1").Value = "Amount"
sheet("D1").Value = "Date"

' Populate data rows
For i As Integer = 2 To 100
    sheet($"A{i}").Value = i - 1
    sheet($"B{i}").Value = $"Customer {i - 1}"
    sheet($"C{i}").Value = (i * 15.5).ToString("C")
Next

' Freeze the top row so headers stay visible when scrolling
sheet.CreateFreezePane(0, 1) ' column split = 0, row split = 1

' Save the file
workbook.SaveAs("OrderReport.xlsx")
$vbLabelText   $csharpLabel

CreateFreezePane(colSplit, rowSplit) 方法接受兩個參數:要凍結的列數和行數。若要僅凍結標題行,傳入(0, 1)。 若要同時凍結標題行和第一列,傳入(1, 1)。

生成的文件在Excel中打開已自動應用凍結,使用者無需自行設置,這對於分發報告給非技術閣員尤其有幫助。

想進一步探索IronXL嗎?它能處理從單元格格式和公式到圖表、密碼保護和文件格式轉換(XLSX、XLS、CSV等)。 您可以在IronXL網站上找到完整的文件和免費試用。

如需更多資源,請存取IronXL網站以獲取指南、詢問問題和與開發者社群分享您的解決方案。 我們也鼓勵您加入Excel開發者社群,以便與他人聯繫、分享提示和獲得您的項目支援。

摘要:您應該使用哪種方法?

情況 最佳方法
凍結第1行(標準標題) 方法1——通過功能區凍結頂端行
凍結第1至3行或任何多行標題 方法2——點擊第4行,然後凍結窗格
手不離開鍵盤 方法3——按下Alt → W → F → R
同時凍結一行和一列 方法4——點擊下方+右邊的單元格,然後凍結窗格
在分發的工作簿中自動應用凍結 方法5——VBA宏
建立一個匯出Excel文件的.NET應用程式 IronXL CreateFreezePane()

凍結窗格是那些在使用前感覺不到的功能之一,而一旦使用過後,就很難回到盲目滾動的狀態。 功能區方法(方法1)涵蓋了大多數日常情況,而方法2處理更複雜的情況。 本指南中的其他內容適用於邊界情況和進階使用者。

如果您對使用哪種方法有疑問,請考慮本指南中提供的提示。對凍結窗格的深思熟慮的方法可以幫助您避免常見的陷阱。 提示:凍結太多行可能會限制您用以工作的可見區域,尤其是在小螢幕上。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話