我想問下如果我想在vba裡計算時間要怎樣寫呢?
我試過下面咁寫就唔得
Cells(i, 19).Value = Cells(i, 5).Value - #9:30:00 AM#
更新:謝謝你的解答先!
在column E 的內容只有文字"Book" or "On" or Time,所以我都已經在上面加咗一句,但都係唔得,為什麼呢?
If Cells(i, 5) <> "Book" Or Cells(i, 5) <> "On" Then
If Cells(i, 5).Value >= TimeSerial(9, 35, 0) Then
更新 3:f Cells(i, 5).Value <> "Book" Or Cells(i, 5) <> "On" Then
Copyright © 2024 1QUIZZ.COM - All rights reserved.
Answers & Comments
Verified answer
正確寫法:
Cells(i, 19).Value = Cells(i, 5).Value - TimeSerial(9,30,0)
亦可寫成(建議採用):
Cells(i,19) = Cells(i,5) - Timevalue("9:30")
2008-09-04 10:25:16 補充:
補充的vba碼, 運行正常
錯誤原因可能是Column E(第5欄)內有文字值
如E1是標題文字, E2以下才是時間, 如用了 i = 1 to n, 因E1是文字, 不能減以時間
2008-09-10 23:33:55 補充:
兩個不同形態的值, EXCEL 是無法判斷 =, >, <, <>的
If Cells(i, 5) <> "Book"
假如 Cells(i,5) 是 "Book" 或 "On", 或任何文字值 (String), Excel是可以判斷
但如 Cells(i, 5) 是 11:30:00 (時間值)或任何非文字值, Excel是無法判斷它是否 <> "Book" 而出錯誤
2008-09-11 00:07:44 補充:
無論任何情況, 假如Cells(i,5)是string, Macro運行至以下一句便會出錯
If Cells(i, 5).Value >= #9:35:00 AM#
由于實際情況比你在此描述應是複雜得多
如沒有你的源文件, 看來不一定可以解決你的問題
找一個 cell 放時間, 然後把兩個 cells 相減。
請參考 Excel 如何儲存時間:
Microsoft Excel 將日期儲存成循序號碼(又稱作序列值),Excel 並將時間儲存成含小數的分數,因為時間是日的一部份。日期和時間都是數值,因此可以執行加減,也可以放在其它的計算中。例如,如果您想知道二個日期之間的差距,您可以將二個日期相減。您可以用序列值或含小數的分數等格式來檢視日期或時間,您只要將日期或時間所在儲存格的格式,改成 [通用] 格式即可。