我試圖凍結Excel工作表中的前4行,但它凍結了20行。我使用下面的VBA代碼凍結行:Excel凍結太多的行
Range("1:4").Select
With ActiveWindow
.FreezePanes = True
End With
這是截圖,添加了notiation顯示我想要的,什麼是真正發生的事情。我滾動了一下以顯示凍結,並且您可以看到第20行跳轉到第36行。看起來G和H之間存在垂直凍結線,但它並不重要(可能是右邊距分頁符)。
任何幫助表示讚賞。謝謝。
我試圖凍結Excel工作表中的前4行,但它凍結了20行。我使用下面的VBA代碼凍結行:Excel凍結太多的行
Range("1:4").Select
With ActiveWindow
.FreezePanes = True
End With
這是截圖,添加了notiation顯示我想要的,什麼是真正發生的事情。我滾動了一下以顯示凍結,並且您可以看到第20行跳轉到第36行。看起來G和H之間存在垂直凍結線,但它並不重要(可能是右邊距分頁符)。
任何幫助表示讚賞。謝謝。
如果要凍結前4行,參考第5行。
Range("5:5").Select
With ActiveWindow
.FreezePanes = True
End With
見excel vba freeze pane without select和How to avoid using Select in Excel VBA macros。
無。選擇。
With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 0
.SplitRow = 4
.FreezePanes = True
End With
它與活性細胞,其可能未必出現在所選擇的範圍內的事。嘗試:
Range("A5").Activate
With ActiveWindow
.FreezePanes = True
End With
而且,這可能會影響您的發生分裂
的SplitColumn/SplitRow值表示上面的最後一個單元格/左就該是可見的左上角單元的分離的。所以,如果你碰巧有這樣的代碼:
Application.Goto Worksheets(2).Range("A101"), True
With ActiveWindow
.SplitColumn = 0
.SplitRow = 10
.FreezePanes = True
End With
的分裂將是行110和111,而不是10和11
(https://stackoverflow.com/a/48672141/9329538)之間。請注意,在.split代碼運行之前手動滾動也會導致此問題。
儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18754648) –
'ActiveWindow.FreezePanes = True'將凍結活動單元格。嘗試'Range(「A5」)。首先選擇' – lebelinoz
@lebelinoz就像Jeeped的回答一樣,這已將第13行後面的凍結行設置爲正確。 – LazyBear
這與'ActiveCell'的位置有關,它可能不一定出現在選定的範圍就像@Jeeped給出的答案。看到我的回答如下 – lebelinoz