我在使用VBA修改日期和时间的单元格中特定时间的时间时遇到了问题。
单元格被格式化为“d / mm / yyyy h:mm AM / PM”,我正在使用仅时间的单元格格式化为“h:mm AM / PM”并且试图使用这段代码来更新时间部分(t1用于子部分的其余部分..)
Public t1 As String
t1 = Range("H1").Value
Range("D3").Select
ActiveCell = DateValue(ActiveCell) & " " & TimeValue(t1)
这似乎可以开启和关闭。例如,6AM将时间更新为12:25,而上午10点完全无法工作。我想我只是做错了但我已经搜索过这个问题,看起来这不是一个常见问题。有没有人有更好的想法?!这让我疯狂
单元格H1中的值确实发生了变化,因此我需要以某种方式从中提取值。
答案 0 :(得分:0)
也许是这样的:
Sub Macro1()
t1 = Range("H1").Value
Range("D3").Select
ActiveCell.Value = ActiveCell + t1
End Sub
答案 1 :(得分:0)
你提到了格式化格式;请注意,当您仅检索值时,单元格格式无关紧要:dt = ActiveCell
另请注意,可以在文本=istext(H1)
返回true时存储日期。在这种情况下,更改格式不会有任何区别。或者您可以按常规方式将其存储为值。 =isNumber(H1)
返回true。使用DateValue("H1")
我建议将dt和tm声明为日期,这样如果作业dt = Range("H1").Value
成功,你就知道你确实有一个约会。然后在添加dateValue + timeValue时不会出现不匹配错误。
试试这个
Dim dt As Date
Dim tm as Date
dt = Range("H1").Value
tm = ActiveCell.value
Range("D3").value = DateValue(dt) + TimeValue(tm) 'returns a date/time as a value