由于项目原因我需要记录工作时间,因此我正在尝试配置宏。由于我是VBA的新手,我仍然遇到代码公式和时间格式方面的困难。
Here is how the sheet looks like
按" ARRIVAL"或" DEPARTURE"它只是{
"query": {
"match_all": {}
},
"sort": {
"m_p.price": {
"nested_path": "m_p",
"order": "asc",
"nested_filter": {
"or": [
{
"and": [
{ "term": { "m_p.product_name": "p1" }},
{ "term": { "m_p.m_id": "m2" }}
]
},
{
"and": [
{ "term": { "m_p.product_name": "p2" }},
{ "term": { "m_p.m_id": "m4" }}
]
}
]
}
}
}
}
(这是单独的单元格,因为我希望能够手动覆盖)
按" LOG"这是它背后的代码:
Range("C7/C9") = Now
我现在想要的是在G栏中,我在项目上工作的时间少于03:30h,在H栏中,我在项目上工作的时间超过了03:30h。
理想情况下,这将在#Minutes中,甚至在1列中加上(+/-),这样我就可以轻松计算出总数。
感谢您对此进行调查!
答案 0 :(得分:0)
我已经更新了您的代码并包含了一些说明来解释原因。我添加了两个公式,将您的总时间转换为分钟,并计算< &安培; >要求。希望这会有所帮助。
Sub LogTime()
Range("12:12").Insert
Range("C7").Copy
'Pastes just the format from C7
Range("C12:I12").PasteSpecial (xlPasteFormats)
'Set as Today's Date
Range("C12").Value = Date
'Arrival
Range("D12").Value = Range("C7").Value
Range("D12").NumberFormat = "[$-F400]h:mm:ss AM/PM"
'Departure
Range("E12").Value = Range("C9").Value
Range("E12").NumberFormat = "[$-F400]h:mm:ss AM/PM"
'Calculate Total with Formula
Range("F12").Value = "=" & Range("E12").Address(0, 0) & "-" & Range("D12").Address(0, 0)
Range("C12:I12").Font.Size = 12
'Convert Time To Minues: (HOUR(F12)*60)+MINUTE(F12)+ROUND((SECOND(F12)/60),0)
'< Formula: In Minutes; if Total Time is => 3:30 return 210 and Total Time if < 3:30 return Total Time
Range("G12").Value = "=IF(((HOUR(F12)*60)+MINUTE(F12)+ROUND((SECOND(F12)/60),0))>=210,210,(HOUR(F12)*60)+MINUTE(F12)+ROUND((SECOND(F12)/60),0))"
Range("G12").NumberFormat = "General"
'< Formula: In Minutes; if Total Time is <= 3:30 return 0 and if Total Time > 3:30 return total time - 3:30
Range("H12").Value = "=IF(((HOUR(F12)*60)+MINUTE(F12)+ROUND((SECOND(F12)/60),0))<=210,0,((HOUR(F12)*60)+MINUTE(F12)+ROUND((SECOND(F12)/60),0)-210))"
Range("H12").NumberFormat = "General"
End Sub