我想知道是否可以凍結某些單元格,比如從L1:P20? 我一直在尋找,似乎無法找到任何解決方案。 這裏的任何人都可以幫助我嗎?凍結excel中的某些單元格
例如當我點擊命令按鈕。當我滾動時,我怎麼能夠在右邊凍結整個事物。當我向下滾動時,我希望桌子也跟着我。
我想知道是否可以凍結某些單元格,比如從L1:P20? 我一直在尋找,似乎無法找到任何解決方案。 這裏的任何人都可以幫助我嗎?凍結excel中的某些單元格
例如當我點擊命令按鈕。當我滾動時,我怎麼能夠在右邊凍結整個事物。當我向下滾動時,我希望桌子也跟着我。
請嘗試以下方法凍結到您指定的列和玩隱藏/取消隱藏周圍以及行> 20列:
Dim ws As WorkSheet
Set ws = ThisWorkBook.WorkSheets("MySheetName") ' <-- Change to your sheet name
ws.Range("Q2").Select
ActiveWindow.FreezePanes = True
然後,你可以隱藏所有行的右方和下方例如行20:
Columns("Q:Q").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.EntireColumn.Hidden = True
Rows("21:21").Select
Range("C21").Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Hidden = True
最後,但並非最不重要的,你可以這個答案與使用用戶窗體我的第二個結合。
如果user7334325不知道這是否有可能,並且認爲可能需要VBA解決方案:這也是常見的「凍結窗格」功能,也可以從功能區中獲得:)不要從您的答案中拿走任何價值, @TM值 –
@ T.M。有用。但只適用於從左到右的滾動。爲什麼當我向下滾動時它不會跟着我? – user7334325
@ user7334325:也許你在第1行選擇了一個單元格?您指定的單元格之前的所有行和列都將凍結,例如C2將凍結第1行和第A和B列。您可以在功能區中的「View \ Window \ Freeze窗格」中試用這個權限。 –
替代
正如你可以創建一個用戶窗體,並採取Worksheet_SelectionChange方法的優點一個選擇 - 只要你選擇了某一行,你會看到在一個窗體的單獨列表框的整個範圍。作爲剩餘的活動行會被標記,如果你定位行內1至20:
步驟1
寫代碼到您的表模塊(MySheetName)
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:P20")) Is Nothing Then
' Mark active row in list box
If Not UserForm1.ListBox1 Is Nothing Then
If Target.Row < UserForm1.ListBox1.ListCount Then
UserForm1.ListBox1.ListIndex = Target.Row
End If
End If
' Show user form
UserForm1.Show vbModeless
End If
End Sub
步驟2
使用以下所需的控件創建一個用戶窗體:ListBox1和CommandButton1 。然後用F7這個代碼寫入到新創建的UserForm1模塊
Option Explicit
Private Sub CommandButton1_Click()
Me.Hide
End Sub
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("MySheetName")
Dim s As String ' range address string
Dim rng As Range ' (target) range
' set range to L1:P20
s = "L1:P20"
Set rng = ws.Range(s)
' define row source of list box via set range
Me.ListBox1.RowSource = s
End Sub
Private Sub UserForm_Layout()
Me.Caption = "My frozen Range L1:P20"
' Userform position in the top right corner
Me.StartUpPosition = 0
Me.Top = 0 ' or: Me.Top = Application.Top + ...
Me.Left = Application.Left + Application.Width - Me.Width
With Me.ListBox1
.ColumnCount = 5 ' five Columns L:P
.ColumnHeads = True
.ColumnWidths = .Width/.ColumnCount
End With
End Sub
備註:這只是一個簡單的例子,它如果你瞭解用戶窗體,你可以細化。
「凍結」是什麼意思?你想保護他們免於改變? – AntiDrondert
@AntiDrondert不,我希望細胞在我向下滾動時「跟隨我」。 – user7334325
@ user7334325添加了一個替代答案,顯示右上角的UserForm。 –