2017-06-13 67 views
1

我試圖凍結Excel工作表中的前4行,但它凍結了20行。我使用下面的VBA代碼凍結行:Excel凍結太多的行

Range("1:4").Select 
With ActiveWindow 
    .FreezePanes = True 
End With 

這是截圖,添加了notiation顯示我想要的,什麼是真正發生的事情。我滾動了一下以顯示凍結,並且您可以看到第20行跳轉到第36行。看起來G和H之間存在垂直凍結線,但它並不重要(可能是右邊距分頁符)。

任何幫助表示讚賞。謝謝。

enter image description here

+0

'ActiveWindow.FreezePanes = True'將凍結活動單元格。嘗試'Range(「A5」)。首先選擇' – lebelinoz

+0

@lebelinoz就像Jeeped的回答一樣,這已將第13行後面的凍結行設置爲正確。 – LazyBear

+0

這與'ActiveCell'的位置有關,它可能不一定出現在選定的範圍就像@Jeeped給出的答案。看到我的回答如下 – lebelinoz

回答

5

如果要凍結前4行,參考第5行。

Range("5:5").Select 
With ActiveWindow 
    .FreezePanes = True 
End With 

excel vba freeze pane without selectHow to avoid using Select in Excel VBA macros

無。選擇。

With ActiveWindow 
    If .FreezePanes Then .FreezePanes = False 
    .SplitColumn = 0 
    .SplitRow = 4 
    .FreezePanes = True 
End With 
+0

使用你的代碼,凍結行在第13行。我會看看你發佈的鏈接。 Thx – LazyBear

+1

您是否合併過了凍結點的單元格? – Jeeped

+0

沒有合併的單元格。 – LazyBear

1

它與活性細胞,其可能未必出現在所選擇的範圍內的事。嘗試:

Range("A5").Activate 
With ActiveWindow 
    .FreezePanes = True 
End With 
-1

而且,這可能會影響您的發生分裂

的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代碼運行之前手動滾動也會導致此問題。

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18754648) –