返回列表 上一主題 發帖

[發問] 儲存格(日期)相減時出現"執行階段錯誤13"

回復 1# morris_lth
試試這樣
sh6.Cells(l, 7) = Datediff("d",CDate(sh6.Cells(l, 5)),CDate(sh6.Cells(l, 6)))
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

本帖最後由 stillfish00 於 2016-2-25 19:13 編輯

回復 4# morris_lth
sh6.Cells(l, 6) => Range 物件
sh6.Cells(l, 5) => Range 物件
兩物件無法相減會採用 Range的預設屬性即.Value 相減
故會變 sh6.Cells(l, 6).Value - sh6.Cells(l, 5).Value

你用TypeName(sh6.Cells(l, 6).Value)會傳回 String,
表示 sh6.Cells(l, 6).Value 其實是字串。

字串無法相減(因此產生Error)
所以我用CDate把字串轉為Date資料型態
兩筆Date求間隔,用DateDiff來做,"d"表示計算間隔單位為"日"

另一種方法就是先設定好儲存格格式為日期,就不會誤判斷為字串。

日期格式2016/02/01出現錯誤,2016/2/1 就能正常?
你看看點兩下變為2016/2/1的儲存格,右鍵儲存格格式是不是變日期了?
1

評分人數

    • 准提部林: 難得的佳解, 詳以說明更是難得!金錢 + 5
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題