誕生日にもらった意外なもの

業務上、データ集計を行うことが多く、マクロが必要不可欠です。
ところが、どーしても解決できないものがあるので、どなたか救いの手をお願いいたします。m(_ _)m

***************************
(1) 横(列)方向に項目あります。【A1・B1・C1】
(2) 縦(行)方向にデータがあります。【A2・A3・・・A50】
(3) A列はA1セルが項目、A2以降がデータでA50まで空欄ナシ。
(4) B列はB1セルが項目、B2以降がデータでB50までデータがあったり、
  なかったり(空白)。
(5) C列はC1セルが項目、C2にA1をキーとして他のファイルから
  リンク(IF関数やVLOOK関数でネスト)したデータが入っています。

と、ここまでは何の問題もないのですが、C2のリンクデータ(関数)をC3~C50にもCopyしたいのです。
ただ、元データの件数は毎回違うので、今回のように"50行"という指定はできません。
なので、条件としてはA列にデータがある場合は、同じ行のC列にC2の関数をCopyする。A列にデータがなければ、そこで処理は終わり。という感じが理想です。
****************************
B列の空白セルさえなければ、SpecialCells(xlLastCell)やEnd(xlDown)などが使えるんだろうなぁとは思うのですが、Loopとかも良く分からないし。。。
どなたかご教授をお願いいたします。m(_ _)m

A 回答 (2件)

実際のマクロです。



x1% = Worksheets("シート名").Range("A65536").End(xlUp).Row
For i = x1% To 1 Step -1
If Worksheets("シート名").Cells(i, *).Value = "おじさん" Then Worksheets("シート名").Rows(i).DELETE
Next

*セルに”おじさん”という項目が入っていたら、その行は全部削除するというマクロです。データ行が可変でも対応できます。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
(お返事を書いたつもりが更新されていませんでした。すみませんm(_ _)m )

早速試してみたのですが、データ量が多いせいかフリーズしてしまいます。(T^T)

もう少し頑張ってみます。

お礼日時:2004/07/28 15:44

>>ただ、元データの件数は毎回違うので、今回のように"50行"という指定はできません。



EXCELの最大行数が65536行(excel2000)なので最大行から空白でない行までマクロ計算して空白でない行を最大データ行とすれば毎回違うデータ行が可変であっても行数は指定可能です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!