ここから本文です

VBAでの、変数代入の記述方法を教えて下さい

a1y********さん

2014/4/1113:40:36

VBAでの、変数代入の記述方法を教えて下さい

A11:F64,A65:F118の2つの表があります。
下側の表を、I9:N118-aに代入したい、尚且つ、切りの良い所(最初の空白行)からしたい。
代入するときの変数 a の式を教えて下さい。
下記のような、記述をしました。

Dim a As Integer
a = 私にはわからない、式
If WorksheetFunction.CountA(Range("D65:D118")) > 0 Then
Range(Cells(11, 9), Cells(65 - a, 14)).Value = Range(Cells(65 - a, 1), Cells(119 - a, 6)).Value
Range(Cells(65 - a, 1), Cells(118 - a, 6)).ClearContents
End If

D列には、3行から5行の文字が入り、又、その間に各1行の空白、が入っています
D列の65行より上で、尚且つ最初の空白行 a を代入したいです。
a は、どのような式で獲得できるでしょうか、教えて下さい。

例です。
・・・・ D列
11行
・・・・砂
から
・・・・月
64行・・ 星
65行・・ 海
・・・・ 山
から ・・花
118行

例での a は、D列を見て、65行から上の行で最初の空白行、
月の上の3行目だから、
a = 3 と言う事になります
よろしくお願いします。

補足有難う御座いました。
右辺の119を116に変えました。
早速、実行しましたが、うまくいかなかったです。
おしえていただいた a を数字としてセルに代入したら、52が現れました
13行を表しているのかなと思います、3 を取得できないでしょうか
念の為、 a-10 を 59に変えると 3 になりましたが、下から 4行目を
空白セルにしたら 2 になってしまいました。
すみませんが、よろしくお願いします。

閲覧数:
137
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

h_tana_0530さん

2014/4/1123:58:14

こんばんは。

D列65行セルから見て上にある、最初にみつかる空白セルの行位置を、A11セルを第1行とする表の何行目であるかを、変数aに与えたい、という意図であれば、

a = 私にはわからない、式
を、例えば

For a = 64 to 11 Step -1
If IsEmpty(Cells(a,"D")) Then Exit For
Next a
a = a - 10

とすればよいと思います。(もし空白行がない場合は、a=0となります。)
が、心配なのは、その後の処理が本当にやりたいことを実現してくれるコードになっているのかどうかがわからないことです。例えば
Range(Cells(11, 9), Cells(65 - a, 14)).Value = Range(Cells(65 - a, 1), Cells(119 - a, 6)).Value
において、a=3の時、代入演算の左辺のレンジは52行ですが、右辺は55行あるので、右辺の下3行のデータはコピーされません。それでよいのでしょうか?

質問した人からのコメント

2014/4/14 07:45:40

降参 ありがとうございました。
あれから a そのものはと思いやってみましたら64行からうえでの最初の空白行を見る、
とのことですね、結果61行目を表す、61が取得できました、後はそれを基にやれました、
本当に、助かりました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる