返回列表 上一主題 發帖

[發問] 錯誤13 型態不符合

回復 1# av8d


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



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
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

回復 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
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題