表示する 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 を外すと、完全に機能しますが、それが答えだとは想像できません。