-2

VBAでやりたいことは次のとおりです。E10で値を見つけ、その行をコピーし、その行を別の場所に貼り付けます(見つけられる限り問題ありません)。次に、値を持つ次の行を見つけますE10 と、スプレッドシートの最後に到達するまで、同じことを行うなど

私はVBAとマクロ全般に本当に慣れていないので、助けていただければ幸いです!

4

1 に答える 1

0

一般的に言えば、「何を試しましたか」を説明せずに質問することは、これらの部分で眉をひそめられる傾向があることがわかります。

今日、私が先ほど回答した、やや似た質問をご覧になることをお勧めします。

メール検索でExcel 2003のデータ行をコピーして別のシートに貼り付ける

それとあなたの必要性の主な違いは次のとおりです。

  • InputBox の代わりに、E10 の値を使用して .Find メソッドを実行します。と
  • ループを作成する必要があります。私の例に示すように .Find メソッドを引き続き実行しますが、シート内の E10 の値のすべてのインスタンスをループするまで、ループで実行します。(最初に見つかった範囲のアドレスを取得し、そのアドレスに戻るまで .Find メソッドを実行し続けます。) ループの作成方法の例については、VBA ヘルプで While ステートメントと For ステートメントを参照してください。

個々のセルの値を取得するには、セル範囲への参照を作成してから、.Value プロパティをクエリします。たとえば、完全修飾参照は次のようになります。

Thisworkbook.Worksheets("Sheet1").Range("E10").value

同じ結果が得られる構文は他にもありますが、それらについては後で学習できます。マクロ レコーダを使用してアクションを記録することは、プロパティとメソッドについて学ぶ良い方法です。問題は、私が嫌いな Excel 2010 インターフェイスの別の部分で、Microsoft がそれを隠すことにしたことです。マクロ エディターにアクセスするには、[ファイル] -> [オプション] -> [リボンのカスタマイズ] に移動し、[開発] タブをオンにします。

これらすべてを試してみて、特定の何かで行き詰まった場合は、詳細を記載して再度投稿してください。

于 2012-11-23T07:06:41.947 に答える