0

表示する 3 つのタブではなく、3 つのボタンを持つ 1 つのシートを作成することで、ワークシートを簡素化することに取り組んでいます。

ワークブックはこちら。

https://dl.dropbox.com/u/3327208/Excel/Archives.xlsx

私がやろうとしているのはこれです。各ボタンは特定のタブに対応し、最終的に各フィールドを各タブの対応する各列に合わせて調整します。アーカイブ 1 はアーカイブ 2 または 3 とは異なる形式を必要とするためです。

これは単純なコピーと貼り付けの概念ですが、列を削除してデータをセルに貼り付けるスクリプトを作成できるため、これを基本的なスクリプトよりも少し複雑にする 2 つのことを行いたいと考えています。スクロールバーを使用しているのですが、同じコマンドで削除できるとは限りませんか? これは私が探しているものです...

- すべてのデータが対応するスクロール バーを作成する方法。これにより、上記のアクティブ データで動作します。したがって、最初のボタンを押すと、画面上のすべてのデータがアーカイブ 1 に対応し、スクロール バーも同様になります。ボタン 2 を押すと、データとスクロール バーがアーカイブ 2 に対応します。

  • スクロールバーが相互作用する関連する行の数が常に最後の行に対応するようにして、スクロールバーが一番下に達したときに最後に「空の」データがないようにします。

  • 上記のスクロールバーも削除して、他のものに置き換える方法。

- これは必要ではなく必要ですが、データが入力されるセルがスクロール バーと相互作用するようにします。スクロール バーは、表示されているワークシートの高さまでしか下に移動しません。したがって、英語でワークシートに 20 行が表示されている場合、それがバーとデータの距離です。

再度、感謝します。

スクリプトが "lastrow" を .Max に入力するように、lastrow の概念を使用してみることにしました。スクロール バーがデータの最後の行を超えないようにします。コードは次のとおりです。

    Sub scrollbar()

    Dim lastrow As Long
    Dim wsJAR As Worksheet 'JL Archive
    Dim wsARC As Worksheet 'JL Archive
    Set wsJAR = Sheets("JL Archive")
    Set wsARC = Sheets("Archives")

    With wsARC
    lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
    ActiveSheet.ScrollBars.Add(1107, 44, 15, 404).Select

        With Selection
            .Max = lastrow
            .LinkedCell = "Lists!$G$3"
        End With
    End With
End Sub

エラーはありません。最後の行を数値として受け入れていますが、そうする理由がないにもかかわらず、セルを超え続けています。

最後の行は 36 です。36 から 13 を外すと、完全に機能しますが、それが答えだとは想像できません。

4

1 に答える 1

1

変化する

With wsARC
    lastrow = wsJAR.Range("B" & Rows.Count).End(xlUp).Row
    wsARC.FreezePanes = False
    Range("A1:Q13").Select
    Range("Q1").Activate
    wsARC.FreezePanes = True
End With

With wsARC
    lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
    .Activate
    ActiveWindow.FreezePanes = False
    .Range("A1:Q13").Select
    .Range("Q13").Activate
    ActiveWindow.FreezePanes = True
End With

最終コード

Sub freezecells()
    Dim lastrow As Long
    Dim wsJAR As Worksheet 'JL Archive
    Dim wsARC As Worksheet 'Archive

    Set wsJAR = Sheets("JL Archive")
    Set wsARC = Sheets("Archives")

    With wsARC
        lastrow = wsJAR.Range("B" & .Rows.Count).End(xlUp).Row
        .Activate
        ActiveWindow.FreezePanes = False 
        .Range("A1:Q13").Select
        .Range("Q13").Activate
        ActiveWindow.FreezePanes = True
    End With
End Sub
于 2012-06-06T15:46:52.123 に答える