Excel 2010 - 将列冻结到水平和垂直滚动

Excel 2010 - 将列冻结到水平和垂直滚动

我熟悉基本的冻结窗格功能。如果我按 冻结第一列Freeze Pane > Freeze First Column,它会影响水平滚动,但不会影响垂直滚动。

我希望无论我如何滚动,列都会被冻结。换句话说,无论我如何滚动窗口的其余部分,第一列中的内容都应始终可见。这可能吗?

举个例子,如果我冻结了A列并且我可以看到 10 行A1:A10,那么无论我垂直还是水平滚动其余行,我总是会看到A1:A10

笔记:需要明确的是,常规冻结窗格不起作用,因为我不想锁定任何行。因此,当我垂直滚动时,我希望第一个柱子不滚动,但所有行(第一列中任何单元格之外的行)都正常滚动。

答案1

您可以执行以下操作。

  • 首先,通过左键单击 Excel 窗口右上角红色关闭图标下方的小型互锁窗口(方块)图标,取消最大化工作簿中的工作表。
  • 通过右键单击工作表的顶部边框(行标识符 A、B 等上方),为工作簿创建第二个窗口。 -
  • 选择“查看/排列全部”,选中“垂直”单选按钮并选中“活动工作簿的窗口”。
  • 调整两个窗口的垂直边界,使得左边的窗口只显示您感兴趣的“摘要”列,而右边的窗口填充其余空间。
  • 在右侧窗口中,在左侧窗口中显示的列的右侧插入一个新列,然后滚动右侧工作表,使该列成为右侧窗口中显示的最左侧列。(新列在左侧窗口中不可见。)
  • 减少列宽以缩小边距,然后将其冻结在原位(我假设您也会冻结顶行)。

最后它看起来会像这样:

在此处输入图片描述

由于两个窗口的滚动不同步,您将在左侧窗口中看到您感兴趣的摘要数字,并且能够毫无问题地在右侧窗口中滚动浏览工作表的其余部分。

答案2

根据 chuff 的回答,我编写了以下宏。它执行 chuff 描述的操作 - 此外,还将两个窗口命名为“仪表板”和“数据”,并从仪表板隐藏所有元素(滚动条、工作表选项卡、行/列标题)。

要使其运行,请执行以下操作:

  • 复制以下代码
  • 在 Excel 中,转到 Visual Basic 编辑器 ( Alt- F11)
  • 右键单击左侧树中的项目并选择,插入新模块插入->模块(如果您也想将此技术应用于其他工作簿,请将其放在您的个人宏工作簿中)
  • 将代码粘贴到新模块中
  • 如果需要,可以通过更改代码的第一行来更改列数或两个​​窗口的标题,代码以Const
  • 执行代码 - 单击第一个程序并按F5- 或返回 Excel ( Alt- F11) 并按Alt- F8。在此处选择宏并单击跑步。(请注意,您也可以在此对话框中为其分配快捷方式)。

这是宏:

Sub SplitWindows()
    Const cIntPaneColumns As Integer = 2
    Const cStrPaneName As String = "Dashboard"
    Const cStrMainName As String = "Data"

    Dim i As Integer
    Dim wndMain As Window, wndPane As Window
    Dim dblOldWidth As Double, dblPaneWidth As Double

    Set wndMain = ActiveWindow

    If ThisWorkbook.Windows.Count > 1 Then
        If MsgBox("Multiple windows for current workbook are already displayed. Do you want to close/rearrange them?", vbYesNo) = vbYes Then
            For i = 2 To ThisWorkbook.Windows.Count
                ThisWorkbook.Windows(1).Close
            Next
        Else
            Exit Sub
        End If
    End If

    Set wndMain = ActiveWindow
    wndMain.WindowState = xlNormal
    Set wndPane = wndMain.NewWindow

    ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical

    dblOldWidth = wndPane.Width
    dblPaneWidth = Range("A1").Resize(, cIntPaneColumns).Width

    ConfigureWindow wnd:=wndPane, blnShowElements:=False, _
        strCaption:=cStrPaneName, dblWidth:=dblPaneWidth, _
        dblLeft:=1

    ConfigureWindow wnd:=wndMain, blnShowElements:=True, _
        strCaption:=cStrMainName, _
        dblWidth:=wndMain.Width + (dblOldWidth - dblPaneWidth), _
        dblLeft:=dblPaneWidth

    With wndMain
        .ScrollColumn = cIntPaneColumns + 1
        .Activate
        .ActiveSheet.Range("A1").Offset(, cIntPaneColumns + 1).Select
        If .FreezePanes Then .FreezePanes = False
        .FreezePanes = True
    End With

End Sub

Private Sub ConfigureWindow(wnd As Window, _
    blnShowElements As Boolean, _
    strCaption As String, _
    dblWidth As Double, _
    dblLeft As Double)

    With wnd
        .Width = dblWidth
        .Left = dblLeft
        .DisplayHeadings = blnShowElements
        .DisplayHorizontalScrollBar = blnShowElements
        .DisplayVerticalScrollBar = blnShowElements
        .DisplayWorkbookTabs = blnShowElements
        .Caption = strCaption
    End With
End Sub

答案3

只需选择单元格B2然后单击冻结窗格

在此处输入图片描述

这将保持单元格左侧和顶部的所有内容可见,即行1和列A

如果只想要左列,则选择单元格B1- 或单击冻结第一列

答案4

(我知道这是一篇很老的帖子,但无论是什么机缘让我来到这里,都意味着它仍然值得一个答案)。

似乎最能达到目的的功能是使用“监视窗口”,而不是使用分割窗口。

公式丝带,在配方审核组,点击监视窗口

在出现的窗口中,您可以添加多个单元格来查看其值。如果您选择一个范围,它将分别包含该范围内的所有单元格。您可以包含来自不同工作表的单元格,以节省从一个工作表切换到另一个工作表的麻烦。

监视窗口是一个功能齐全的窗口 - 您可以调整其大小并将其拖出 Excel 窗口的范围,例如拖到第二个显示器,或者您可以将其“停靠”在 Excel 屏幕的一侧。如果主 Excel 窗口被隐藏或最小化,它会消失,这是有道理的。如果您关闭监视窗口,它会记住您正在监视的内容,因此当您下次打开窗口时,对于同一工作簿,相同的单元格会被再次“监视”。

*它似乎没有响应Windows的“捕捉”功能。

相关内容