Vô tình thoát khỏi ngăn đông lạnh (Microsoft Excel)
Steven có một trang tính với nhiều hàng và cột dữ liệu. Anh ta đã cố định hàng và cột đầu tiên bằng cách làm cho ô B2 hoạt động và sau đó đóng băng các ngăn. Điều này hoạt động như anh ấy muốn. Anh ta thậm chí có thể lưu và đóng sổ làm việc, và các ngăn vẫn bị đóng băng khi anh ta mở lại sổ làm việc.
Tuy nhiên, nếu Steven mở một cửa sổ mới cho sổ làm việc (View | Window | New Window), cửa sổ mới sẽ không có các ngăn được cố định. Vì anh ta đã đóng băng các ngăn trên nhiều trang tính trong sổ làm việc này, anh ta phải rất cẩn thận về việc đóng cửa sổ nào trước. Nếu anh ta đóng cửa sổ ban đầu trước, khi anh ta lưu sổ làm việc, nó sẽ lưu tất cả các trang tính chưa đóng băng.
Steven tự hỏi liệu có cách nào để có được cửa sổ mới để giữ lại cài đặt các ngăn bị đóng băng không?
Không có cài đặt nào trong Excel sẽ xử lý những gì Steven cần xảy ra. Lý do mà các ngăn bị cố định không được lưu là vì FreezePanes (cùng với Zoom, Split và một số cài đặt khác) là thuộc tính của cửa sổ, không phải của trang tính hoặc sổ làm việc. Khi một cửa sổ mới được tạo, các thuộc tính không được kế thừa từ cửa sổ ban đầu.
Tuy nhiên, bạn có thể giải quyết hành vi này (và giải quyết vấn đề của Steven)
bằng cách sử dụng macro để thiết lập cho bạn. Một cách tiếp cận rất ngắn là bỏ qua việc sử dụng các công cụ ribbon để tạo cửa sổ mới của bạn. Thay vào đó, hãy thêm macro này vào QAT và sử dụng nó để tạo cửa sổ:
Sub CreateNewWindow1() Dim rPane As Range Set rPane = ActiveWindow.VisibleRange(1) ActiveWindow.NewWindow ActiveSheet.Range("B2").Select ActiveWindow.FreezePanes = True End Sub
Macro tạo một cửa sổ mới, đặt các ô hiển thị bằng với những ô được hiển thị trong cửa sổ gốc, chọn ô B2 trong cửa sổ mới, rồi đóng băng các ngăn.
Tuy nhiên, cách tiếp cận đơn giản này có thể không hoạt động nếu nhu cầu “đóng băng khung” của bạn đa dạng hơn. Ví dụ: bạn có thể muốn một cách để tạo một cửa sổ mới và để nó khớp với bất kỳ ô nào trong cửa sổ đã hoạt động khi bạn tạo cửa sổ mới.
Macro sau đây sẽ kiểm tra xem cửa sổ hiện tại có ngăn fozen hay không. Nếu có, thì nó sẽ tìm ra vị trí bị đóng băng và sử dụng điều đó để đặt các ngăn bị đóng băng trong một cửa sổ mới. Nếu không có ngăn nào bị đóng băng, thì dù sao thì một cửa sổ mới cũng sẽ được tạo và không có gì ở đó bị đóng băng. Trong cả hai trường hợp, cùng một ô được chọn trong cửa sổ mới như đã được chọn trong bản gốc.
Sub CreateNewWindow2() Dim iRow As Integer Dim iCol As Integer Dim rOldPos As Range iRow = 0 iCol = 0 If ActiveWindow.FreezePanes Then iRow = ActiveWindow.ScrollRow iCol = ActiveWindow.ScrollColumn End If Set rOldPos = ActiveCell ActiveWindow.NewWindow If (iRow > 0) And (iCol > 0) Then Cells(iRow, iCol).Select ActiveWindow.FreezePanes = True End If rOldPos.Select End Sub
Mã này, một lần nữa, có thể được sử dụng để tạo bất kỳ cửa sổ mới nào bạn muốn.
Họ hoàn thành những gì Steven cần làm vì họ sao chép cài đặt ngăn được cố định từ cửa sổ đang hoạt động sang cửa sổ mới được tạo.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (13366) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.