【エクセルVBA】年度が変わり不具合が出ます
こんばんは。
ご覧頂きありがとうございます。
エクセルで管理している仕入れ表があるのですが
締め日で取引先の月毎合計金額を算出したいのです。
シートを用意し、
A列には、2019/10/21〜11/20
と手入力し、
B、C・・・列には、取引先毎の商品納品日が上記期間に該当する合計金額
が算出されるVBAを書きました。
ですが、年度が2019から2020に変わり、
去年は合っていた金額が
今年、算出すると合わなくなってしまったのです・・・
何故でしょうか?
下記VBAです
Private Sub 算出_Click()
Dim intR As Integer
Dim intL As Integer
Dim intT As Integer
Dim objS As Worksheet
Dim objW(2) As Worksheet
Dim lngB As Long
Dim intD As Integer
Dim dteF As Date
Dim dteT As Date
Set objS = Sheets("合計")
Set objW(1) = Sheets("さまぁ〜ず大竹さん")
Set objW(2) = Sheets("さまぁ〜ず三村さん")
intR = 2
Do Until objS.Cells(intR, 1).Value = ""
intD = InStr(objS.Cells(intR, 1).Value, "~")
dteF = DateValue(Left(objS.Cells(intR, 1).Value, intD - 1))
dteT = DateValue(Right(objS.Cells(intR, 1).Value, Len(objS.Cells(intR, 1).Value) - intD))
For intT = 1 To 2
intL = 3
lngB = 0
Do Until objW(intT).Cells(intL, 1).Value = ""
If dteF <= objW(intT).Cells(intL, 17).Value And _
dteT >= objW(intT).Cells(intL, 17).Value Then
lngB = lngB + objW(intT).Cells(intL, 13).Value
End If
intL = intL + 1
Loop
objS.Cells(intR, intT + 1).Value = lngB
Next intT
intR = intR + 1
Loop
End Sub
No.2ベストアンサー
- 回答日時:
A列に「2019/10/21〜11/20」と入力されているそうですが・・・。
人間であれば「2019/10/21〜2019/11/20」と解釈してくれますが、むぎさんが書いたVBAは、「2019/10/21〜2020/11/20」と解釈していると思います。
FROMと同様に、TOについても年を入力するようにすれば、問題なく動きそうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで人名を50音順に表...
-
エクセルで時刻を自動入力する方法
-
excel フレームのように一部...
-
ローマ字入力で「トゥ」を入力...
-
アイドルの写真について
-
チケット何回もエラーは高額請求?
-
1点の辻の字に変換したいがエク...
-
「未使用」と「不使用」ってど...
-
APEXをやっていたらこんなエラ...
-
iMacキーボードの入力 小文字の...
-
自動改札のエラーって…
-
VBユーザーフォームで時間入力
-
excelで小数点0を表示させる方法
-
Eエクセルの計算方法で空欄を0...
-
Googleカレンダーで予定を入れると
-
ファイザーやモデルナは当時は...
-
送信エラー時、レポートメール...
-
SUM関数の範囲に#N/Aが...
-
Excelの“並び替え”で文字コード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
すべてのシートを選択してエク...
-
エクセルで時刻を自動入力する方法
-
Excelのデータが重いのはなぜで...
-
Excel VBA 答えが0になってし...
-
EXCEL VBA 区切り位置のプログ...
-
エクセルマクロについて データ...
-
エクセル。ブック内検索で重複...
-
エクセルで30日以内に同内容の...
-
スプレッドシートで、指定した...
-
合計が0の行を削除
-
エクセルで漢字がうまく並び替...
-
エクセルの入力 エンターキーで...
-
excel フレームのように一部...
-
エクセルの中の漢字を一度にカ...
-
エクセルで隣のセルと同じ数字...
-
A列を検索し一致した行を表示。...
-
Excel2003での並べ替えについて
-
エクセル (1)行削除 (2)列追...
-
Excelユーザーフォームでのデー...
-
エクセルの既存のシートでは入...
おすすめ情報