• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba 日付時刻のセル エラー13型が一致しません)

VBA 日付時刻のセル エラー13型が一致しません

このQ&Aのポイント
  • 日付の入ったセルと時刻の入ったセルを合算させると、エラーが生じます。エラー13「型が一致しません」と表示されます。このエラーを回避する方法について教えてください。
  • VBAを使用して日付の入ったセルと時刻の入ったセルを合算しようとすると、エラー13「型が一致しません」というエラーが表示されます。どのようにすればこのエラーを解消できますか?
  • セル内に日付と時刻が入っている場合に、それらを合算するとエラー13「型が一致しません」というエラーが発生します。このエラーを回避する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは Option Explicit Public num As Long Sub newmacro()   Dim r As Long   r = Range("a1").End(xlDown).Row   Range("F1:F" & r).NumberFormatLocal = "[h]:mm"   On Error Resume Next   For num = 1 To r     Cells(num, "F").Value = _       ((Cells(num, "D").Value + Cells(num, "E").Value) - _       (Cells(num, "B").Value + Cells(num, "C").Value))     If Err.Number <> 0 Then       MsgBox num & "行でエラー発生 " & Err.Description     End If   Next num   On Error GoTo 0 End Sub どこでエラーになるのか、その行のB~E列のデータはどうなっているのかを確認して下さい。 日付、時間が入っていますか? 行は意図した範囲ですか?

crossinlove
質問者

お礼

ありがとうございます。 教えもらったコードを実行したところ、一行目からエラーが生じました。 kkkkkmさんのご指摘のように、日付の形式が問題だったようで、 月日から”/”の形式に変えたところ、ushi2015さんのコードで動きました。 ありがとうございます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

B列とD列が文字列として2013年8月と入力されているのだと思いますのでG1あたりの何も入力されていないセルの形式を日付に変更してそのセルでコピーしてD列とB列を選択して形式を選択して貼り付け演算で加算をチェックしてOKしてください。すべての行が各月1日の日付に変更されます。 表示形式を日付の2013年8月に設定し直してください。 その後マクロを実行してみてください。経過時間を計算するのでしたら逆で引き算しないといけないとは思いますが。

crossinlove
質問者

お礼

ありがとうございます。 月日から”/”の形式に変えたところエラー動きました。 何ヶ月も困っていましたので、助かりました。

  • mdmp2
  • ベストアンサー率55% (438/787)
回答No.1

Option Explicit Public num As Integer ※1 上の部分は削除してテストしてください。 これがあると、いちいち変数を定義しなければならないのでデバッグが面倒。 Sub newmacro() For num = 1 To Range("a1").End(xlDown).Row ※2 .End(xlDown).Row は削除してテストしてください。 Cells(num, "F").Value = (Cells(num, "D").Value + Cells(num, "E").Value) - (Cells(num, "B").Value + Cells(num, "C").Value) Next num ※1と※2 をやって、B,C,D,E 列に適当な時刻データを15行ほど入力し、A1=10 として実行してみました。動きました。

crossinlove
質問者

お礼

すみません。 説明が欠けていました。 B、D列は日付のデータが入っています。 ありがとうございます。

関連するQ&A