VBA for Excelを始めたばかりです。私は 10 年近く前に大学で VB と Java を使用し、そのときは十分に使いこなせましたが、基本的には最初からやり直しています。(ええと、自転車に乗るのは好きではありません。)
A1:J34 などとして宣言されているだけでなく、範囲を構築する方法を理解しようとしています。私のグーグルは、「範囲」と私が探しているものを示す用語を検索すると、必要なものよりもはるかに高度なヒットの雪崩が発生するという点で挑戦されています。ほとんどのヒットは、必要な基本的な要約情報にも対応していません。
だから、これがその基本です:Mac上のExcel 2011。このシートには、A から M まで、1309 までのデータがあります。これは、見出し行とそれに続くデータ行の繰り返しパターンです。うーん。シートを作成した人は、データの構成よりもシートからの印刷について考えていたようです。ピボットテーブルで使用するには、それをクリーンアップする必要があり、さらに 3 つの同様のものが必要ですが、このばかげた繰り返しレイアウトでは役に立ちません。
見出し行は次のとおりです: 姓、名、10 個の日付セル。見出しの下のデータ行はもちろん名前であり、出席を表す 1 または 0 です。各見出しの下に 20 から 30 の名前があります。それが繰り返されます。そして、日付は数セットごとに変わり、最後のセットが中断されたところから始まります.
私が今しなければならないこと: 特定の値 (列 A) で始まるすべての行を追加して、範囲を範囲変数にアセンブルしようとしています。私の場合、その値は文字列「Last Name」であるため、「Last Name」で始まるすべての行のすべてのセルを保持する範囲変数を持つことができます。これにより、日付形式にする必要があるすべてのセルがキャプチャされます。(私はそれを行っているので、日付の見出しがすべて実際に日付形式であることを確認できます-現在はすべてが日付形式ではないため、多くは単なる「一般」セルです。)
私の質問:
- 範囲オブジェクトに範囲ISを伝えるとき、コードを書いている人が入力した開始セルと終了セルによって定義されたブロックではなく、行基準に基づいたセル/行/列をどのようにフィードしますか? 例: A の「First Name」の存在に基づいて、列 A から I までの行 1、34、70、93、および 128 を含む範囲を作成します。
- これを行うための最も一般的な方法は何ですか?
- これらのうち、私のニーズに最も適しているのはどれですか?その理由は?