Board logo

標題: [發問] 錯誤13 型態不符合 [打印本頁]

作者: av8d    時間: 2023-2-22 16:02     標題: 錯誤13 型態不符合

[attach]35866[/attach]

時間判斷上也有問題,當天凌晨2點,但是卻判斷符合,請前輩指導,謝謝
作者: Andy2483    時間: 2023-2-22 16:41

回復 1# av8d


    謝謝前輩發表此主題與範例
後學只會將儲存格裡的時間用宣告為DATE的變數裝起來做運算會成功計算,其他方法後學也想學
以下方法請參考

[attach]35867[/attach]

Option Explicit
Sub 開始()
Dim T As Date, i&
For i = 2 To Cells(Rows.Count, "A").End(3).Row
   T = Cells(i, 8)
   If Trim(Cells(i, 9)) = "" Then
      If T < Now() Then
         Cells(i, 9) = "已超時"
      End If
      If T > Now() Then
         Cells(i, 9) = Now() - T
      End If
   End If
Next
End Sub

Sub 開始_1()
Dim T As Date, i&
For i = 2 To Cells(Rows.Count, "A").End(3).Row
   T = Cells(i, 8)
   If Trim(Cells(i, 9)) = "" Then
      Cells(i, 9) = IIf(T < Now(), "已超時", Now() - T)
   End If
Next
End Sub
作者: av8d    時間: 2023-2-22 16:47

回復 2# Andy2483

受益良多,謝謝前輩提供兩種寫法
作者: singo1232001    時間: 2023-2-22 17:02

回復 3# av8d

CDate(Cells(i, 8))
作者: av8d    時間: 2023-2-22 18:44

回復 4# singo1232001

還好有點進來看前輩的留言,CDate()真的超好用的,也能準確地知道T是什麼,不用往上去找,謝謝您。
作者: Andy2483    時間: 2023-2-23 07:33

回復 3# av8d
回復 4# singo1232001


    謝謝兩位前輩
後學複習了一下做了心得註解,請前輩指教

Option Explicit
Sub 開始_1()
Dim T As Date, i&
'↑宣告變數:T是日期變數,i是長整數
For i = 2 To Cells(Rows.Count, "A").End(3).Row
'↑設順迴圈!i從2到 A欄最後有內容的儲存格列號
   T = Cells(i, 8)
  '↑令T這日期變數是 i迴圈列H欄儲存格值轉化為日期值的變數
   If Trim(Cells(i, 9)) = "" Then
   '↑如果i迴圈列I欄儲存格值去除前後空白字元後的字串是 空字元??
      Cells(i, 9) = IIf(T < Now(), "已超時", (Now() - T))
      '↑If條件成立!就令i迴圈列I欄儲存格值 以IIf()回傳值帶入
      'IIf():如果T變數 < 現在時間!就回傳 "已超時"字串,否則回傳(現在時間-T變數)

   End If
Next
End Sub


Sub 開始_2()
Dim i&
'↑宣告變數:i是長整數
For i = 2 To Cells(Rows.Count, "A").End(3).Row
'↑設順迴圈!i從2到 A欄最後有內容的儲存格列號
   If Trim(Cells(i, 9)) = "" Then
   '↑如果i迴圈列I欄儲存格值去除前後空白字元後的字串是 空字元??
      Cells(i, 9) = IIf(CDate(Cells(i, 8)) < Now(), "已超時", (Now() - CDate(Cells(i, 8))))
      '↑If條件成立!就令i迴圈列I欄儲存格值 以IIf()回傳值帶入
      'IIf():如果CDate()函數轉化i迴圈列H欄儲存格值 < 現在時間!就回傳 "已超時"字串,
      '否則回傳(現在時間-i迴圈列H欄儲存格值)
      'https://support.microsoft.com/zh-tw/office/%E9%A1%9E%E5%9E%8B%E8%BD%89%E6%8F%9B%E5%87%BD%E6%95%B8-8ebb0e94-2d43-4975-bb13-87ac8d1a2202

   End If
Next
End Sub
作者: av8d    時間: 2023-2-24 15:16

回復 6# Andy2483


    感謝前輩不厭其煩地說明,竟然還有我最期待的註解,讓更多不懂的人可以知道撰寫其原因,謝謝!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)