いつもおせわになります。
現在、下記のようなコードを書いてますがどうもうまくいきません。よろしくお願いいたします。
M列 = K列 × N列を6行目から最終行目で入れたくて下記のようなコードを書きました。
ところが・・・N列にはデータのない場合があるので、If~を入れてみました。ここまではうまくいったのですが、
O列 = K列 × P列のように数式を入れたい列が他にもあり、又同じコードを下記のように書いたら、P列にデータがないところで止まってしまいます。
'/////////////////////////////////////////////
Dim wsS As Worksheet
Dim r As Long
Dim Srow As Long
Set wsS = Worksheets("syukei")
Srow = wsS.Range("D65536").End(xlUp).Row
With Worksheets("syukei")
For r = 6 To Srow
If Cells(r, 12) = Noting Then
r = r
End If
Cells(r, 13) = Cells(r, 11) * Cells(r, 12)
Next
End With
With Worksheets("syukei") '↓////////ここらへんで止まる//////////
For r = 6 To Srow
If Cells(r, 14) = Noting Then
r = r
End If
Cells(r, 15) = Cells(r, 11) * Cells(r, 14)
Next
End With
End Sub
掛け算を入れたい行は、下記のようになっています。
M列=K列×L列
O列=K列×N列
Q列=K列×P列
S列=K列×R列
U列=K列×T列
W列=K列×V列
Y列=K列×X列
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
rurucomさんこんにちは。
記述されたコードの中の、Notingが定義されていないのが原因ではないでしょうか。たとえば、空白であれば、"" という記述でOKです。以下に、例を示してみましたので、試してみてください。この例では、ある列の最終行を取得する関数を作っています。また、空白や文字列などがデータに混在していて、計算できない場合は、エラーを無視しして進みますので、結果的に空白のセルが返されるはずです。Sub TEST()
Dim r As Long '計算結果を書き込む行番号
Dim Srow As Long '計算結果を書き込む最下段の行番号
Dim cul As Integer '計算結果を書き込む列番号
On Error Resume Next 'エラーが発生しても処理を進める
With Sheets("syukei")
'culの値を12(L)から24(X)まで1つ飛びに増加させる
For cul = 12 To 24 Step 2
'シートsyukeiのcul列目の最下段を調べる
Srow = Myrec("syukei", cul)
For r = 6 To Srow
If .Cells(r, cul) <> "" Then
.Cells(r, cul + 1) = _
.Cells(r, 11) * .Cells(r, cul)
End If
Next r
Next cul
End With
End Sub
Function Myrec(stIndex, c As Integer) As Integer
'***使用されている行数を返す関数***
'stIndex 調べるシートの名前またはインデクス値
'c 調べる列番号
Myrec = Sheets(stIndex).Range(Sheets(stIndex).Cells _
(ActiveSheet.Rows.Count, c).End(xlUp).Address).Row
End Function
上記の2つのステートメントを貼り付けて実行してみてください。
不具合がある場合は再度ご質問ください。
No.2
- 回答日時:
For r = 6 To Srow
If (IsEmpty(Cells(r, 1)) Or IsEmpty(Cells(r, 2))) = True Then
Cells(r, 3) = "#n/a"
Else
Cells(r, 3) = Cells(r, 1) * Cells(r, 2)
End If
Next
にしてみてはいかがでしょう?
#ただし、cells(r,*) の*は、適宜列にあわせて決めてください。
あと、同じ演算を何回もやるようなので、For ... Nextにまとめて記述してしまうのも良い手だと思いますよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル 文字数 多い順 並...
-
Excelで半角の文字を含むセルを...
-
「B列が日曜の場合」C列に/...
-
Excel 文字列を結合するときに...
-
エクセルで文字が混じった数字...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
エクセルの関数(日数の平均の...
-
エクセル 時間帯の重複の有無
-
エクセル 同じ値を探して隣の...
-
エクセルの並び変えで、空白セ...
-
【VBA】特定列に文字が入ってい...
-
2つのエクセルのデータを同じよ...
-
エクセルで、列の空欄に隣の列...
-
EXCELで 一桁の数値を二桁に
-
Excelの行、列の左方向シフト、...
-
VBAで文字列を数値に変換したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセル(勝手に太字になる)
-
Excelで半角の文字を含むセルを...
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
エクセルで文字が混じった数字...
-
文字列に数字を含むセルを調べたい
-
エクセル 時間帯の重複の有無
-
VBAで文字列を数値に変換したい
-
「B列が日曜の場合」C列に/...
-
エクセル 同じ値を探して隣の...
-
エクセルの項目軸を左寄せにしたい
-
エクセルで、列の空欄に隣の列...
-
お店に入るために行列に並んで...
-
Excel、市から登録している住所...
-
エクセルの並び変えで、空白セ...
-
オートフィルターをかけ、#N/A...
-
エクセルの表から正の数、負の...
おすすめ情報