アプリ版:「スタンプのみでお礼する」機能のリリースについて

'1つ上の行にあるセルとの分の間隔を計算するカウンタ
'J列のセルには「12:00:00」のように時刻が入っている
Dim M_Interval As Integer

For文の中に下の一文を入れただけでエラーがでます。何が原因なのでしょうか。

M_Interval = Minute(wb.Sheets(1).Range("J" & i) - wb.Sheets(1).Range("J" & (i - 1)))

質問者からの補足コメント

  • つらい・・・

    ちなみに以下もダメでした

    M_Interval = DateDiff("n", wb.Sheets(1).Range("J" & (i - 1)).Value, wb.Sheets(1).Range("J" & i).Value)

      補足日時:2019/09/02 14:50

A 回答 (3件)

Excel 2016 1908


wb 部分は削除したが、他の部分でエラーは発生しませんでした。
(仮定、i=2以上)つまり、
可能性としては、i が1である為、i-1 で、Range("J" & (i - 1)で range("J0")になり、エラー
    • good
    • 0

こんにちは



>一文を入れただけでエラーがでます。何が原因なのでしょうか。
全体の情報がほとんど無いので、エラーの原因はいくらでも考えられます。
また、エラー時にメッセージが出ると思いますが、その内容は大きな手掛かりになりますが、それすらも提供されていないので、何でもありみたいなものです。


例えば、基本的なところで
 ・変数が適切な値でない。 変数wb、変数i など
 ・セルの値が適切でない(数値として読めない等)

一番簡単そうで、ひとまずありそうなのは、ループを
 For i=1 To 50
などとしていて、セルの参照で失敗してるとか。
( iがループ変数なのかどうかも不明ですけれど・・)
    • good
    • 0

一般的な計算式は、A2>A1であるときは、以下になります。


分差=(A2-A1)*24*60
つまり、シリアル値の差分を(24*60)倍にすればよいです。

VBA記述は解らないので、これと同等にしてみてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
以下の文にしてみたのですがエラーが出てしまいました。どこを修正すればよいでしょうか。

M_Interval = (wb.Sheets(1).Range("J" & i).Value - wb.Sheets(1).Range("J" & (i - 1)).Value) * 24 * 60

お礼日時:2019/09/02 14:29

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