在所有时间格式中,输入12:
将12:00 PM
在中午返回。如果我想要午夜,我可以再输入12:00 a
4 次按键,这没问题,因为我从来不需要在晚上跟踪时间。1:
但是,当我进入并返回时,这种常识就会中断, 1:00 AM
出于同样的原因,这是不行的。
我知道我可以使用军事时间或简单地将 A 更改为 P。这是我目前的解决方案,但我将其视为创可贴。我的目的是学习如何被动地更改默认为 AM 或 PM 的时间。
是否有一种看似简单的方法来调整设置中的默认值?
是否有针对此的 VBA/宏解决方案?我再次寻找被动的改变。我不想创建一个热键来将给定单元格中字符串中倒数第二个字符更改为“P”。我希望我一按回车键就发生这种情况。
这纯粹是哲学问题,必须由 Microsoft 员工回答,但 Microsoft 必须有人建议将 12 默认设置为中午,这与其他时间不同。为什么他们不把这个想法扩展到其他合理的下午时间,比如中午到 5 点或 6 点?
无法调整 AM/PM 的默认值,但有一种简单的方法可以避免此问题。
解决方案是以 24 小时格式输入日期。
因此,对于“1 PM”,只需键入“13:”并点击Enter,它会立即转换为“1:00 PM”。
以下 VBA 宏将执行您对第 1 (A) 列中所有值的要求,假设您从不在早上 7 点之前开始工作:
没有。
12:
被解释为12:00 PM
因为时间在午夜环绕,就像日期一样。12:
一天中的十二个小时,也就是中午也是如此。同样,3:
在 或 中是三个小时,在 或3:00 AM
中14:
是十四小时2:00 PM
。边缘情况甚至可以很好地工作,两者都0:
被24:
视为午夜。任何其他解释在数学上都是令人费解的。请参阅 harrymc 的回答。
是的,他们选择
12:
默认为中午。任何其他情况都必须编码为特例。我不知道你所说的“与其他时间不同”是什么意思。他们这样做的方式合乎逻辑且一致。如果你想在不同的单元格中输入和显示,你可以使用这样的东西。
如果时间从上午开始并在 12 小时内停止,这将起作用。前任
在此处输入图像描述
在单元格 d1 中放 =TIME(TRUNC(A1/100),MOD(A1,100),)
在单元格 e1 中输入 =IF(A1>B1,TIME(TRUNC((B1+1200)/100),MOD(B1,100),),TIME(TRUNC(B1/100),MOD(B1,100),) )
如果时间在中午之后开始,它可以很容易地改变,如果它从上午或下午开始切换,或者如果一天应该长于 12 小时,你可以放一些东西来覆盖公式。
如果有最常发生的常见情况,它会比实际键入冒号和 am 或 pm 更容易。