お世話になっております。
VBAのループについて教えていただきたいです。
更新ボタンを押した際に自動で計算されるプログラムを組んでおります。
計算のモジュールは「Module_g.InputCalc」で引数は(ActiveCell.Row, "支出"または"粗利益")で呼ぶことができます。
現在のコードだと粗利益の部分も支出の計算で入ってしまうため、粗利益に入ったら粗利益の計算がされるようにしたいです。
その時の判定の取り方を教えていただきたいです。
また、支出・粗利益の中の項目は追加していくことがあります。
コード
Sub DateUpdate()
With Sheets("HOME")
Dim i As Integer
For i = 7 To .Cells(Rows.Count, 1).End(xlUp).Row
Call Module_g.InputCalc(i, "支出")
Next
End With
End Sub
No.2ベストアンサー
- 回答日時:
既に回答は出てますが、A列の最終行の取得方法から見て『粗利益』の各項目については計算されるようになっていると言う事でしょうか?
Sub DateUpdate_2()
Dim i As Integer
Dim komoku As String
With Sheets("HOME")
For i = 7 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "A").Value <> "" Then
komoku = .Cells(i, "A").Value
Call Module_g.InputCalc(i, komoku)
End If
Next
End With
End Sub
それともその辺も検討中なのですか?
Sub DateUpdate_3()
Dim i As Integer
Dim komoku As String
With Sheets("HOME")
For i = 7 To .Cells(Rows.Count, "B").End(xlUp).Row
If .Cells(i, "A").Value <> "" Then komoku = .Cells(i, "A").Value
Call Module_g.InputCalc(i, komoku)
Next
End With
End Sub
こちらはB列で7~最終行を求めループさせてます。
B列の空白セルについては『Module_g.InputCalc』がどうなっているのかで違うかもですが。
No.3
- 回答日時:
こんばんは!
回答ではありません。
>(ActiveCell.Row, "支出"または"粗利益")で呼ぶことができます。
というコトですが、分岐は二つだけでしょうか?
通常は「項目」も選ぶ必要があると思うのですが・・・
項目名があるのであれば、B列で行を選択することが可能になると思うのですが。
※ 具体的なアドバイスでなくてごめんなさい。m(_ _)m
No.1
- 回答日時:
こんにちは
>粗利益に入ったら粗利益の計算がされるようにしたいです。
添付図の赤系のところと青系のところだと解釈しましたが、そもそも、ご提示のコードでループの終わりの行を
.Cells(Rows.Count, 1).End(xlUp).Row
で算出している理由は何なのでしょうか?
ご提示の図から推測するところ、「支出」7~13行、「粗利益」は14~18行というのは固定ではないのでしょうか?
もしそうであるなら、
IF i<14 Then kamoku = "支出" ELSE kamaoku = "粗利益"
Call Module_g.InputCalc(i, kamoku)
みたいなことで良いのでは?
表の形式は同様だけれど、行数が可変で固定ではないというのであれば、 i 行のA列の値を見て(空白の場合は上方向に探す)引数を決定するような仕組みにしておけば良いのではないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
モジュロ
-
バッチファイルでウインドウを...
-
EXCELなどで「返す」という表現
-
VBでReplace
-
変化させるセルが変化しない
-
Visual C++でdebugとreleaseで...
-
エクセルで特定のセルのみを任...
-
2次元ラプラス方程式を差分法で...
-
計算量オーダーについて O(1/n...
-
スレッド処理からダイアログを...
-
排他的論理和 BCC(水平パリテ...
-
パルスを時間(m/min)の計算につ...
-
アドオン利率を実質年率に変換
-
シートの複写をデスクトップの...
-
エクセル VBAで 再計算を...
-
モジュラス103の計算とは何でし...
-
VBAの再計算が反映されない件に...
-
C# 計算処理中に実行中ウィン...
-
機械学習や画像処理でのプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報