6

次の形式のデータを含むExcelシートがあります。

Title
Summary A
A info 1
A info 2
A info 3
Summary B
B info 1
B info 2
Summary C

だから今、私はExcelのフリーズペインとしての「タイトル」しか持っていません。それは問題なく動作しますが、データがたくさんあるので、シートの真ん中にいるときは、作業しているかどうかを判断するのは困難summary Aですsummary B

ペインを動的にフリーズする方法を知っている人はいますか?つまり、最初は凍結されますtitleSummary A次に、ユーザーが次のセクションまで下にスクロールするTitleSummary B、フリーズします。

4

2 に答える 2

3

これを試すことができます (ワークシート コード モジュールで)。選択が変更されるたびに、「Summary*」などのコンテンツの最初の列を上方向にチェックします。ワークシートがまだその行に固定されていない場合は、その調整が行われます。

問題の 1 つは、上にスクロールするには、上部ペインの行の 1 つをクリックする必要があることです...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Static lastFreeze As Long
    Dim c As Range, r As Long, sel As Range

    Set sel = Selection
    'get the first cell on the selected row, then
    '  go up until find a content like "Summary*"
    Set c = Target.Parent.Cells(Target.Cells(1).Row, 1)
    Do While (Not c.Value Like "Summary*") And c.Row > 1
        Set c = c.Offset(-1, 0)
    Loop

    'need to switch freeze location?
    If c.Row > 1 And c.Row <> lastFreeze Then
        ActiveWindow.FreezePanes = False
        'prevent re-triggering event
        Application.EnableEvents = False
        Application.GoTo c.Offset(-1, 0), True
        c.Offset(1, 0).Select
        ActiveWindow.FreezePanes = True
        sel.Select
        Application.EnableEvents = True
        lastFreeze = c.Row
    End If

End Sub
于 2012-06-29T18:05:35.387 に答える
1

これは少し遅いかもしれませんが、私はこのような解決策を探していました. 代わりにグループ化してみてください: http://office.microsoft.com/en-us/excel-help/outline-group-data-in-a-worksheet-HA010095247.aspx

于 2014-03-06T15:38:36.573 に答える