Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-在Datetime格式的单元格中使用上午6点更新时间_Excel_Vba_Datetime - Fatal编程技术网

Excel VBA-在Datetime格式的单元格中使用上午6点更新时间

Excel VBA-在Datetime格式的单元格中使用上午6点更新时间,excel,vba,datetime,Excel,Vba,Datetime,我无法使用VBA将时间修改为包含日期和时间的单元格中的特定时间 该单元格的格式为“d/mm/yyyy h:mm AM/PM”,我正在获取一个只有时间的单元格,格式为“h:mm AM/PM”,并尝试使用此代码位来更新时间部分(t1用于子…的其余部分) 这似乎是断断续续的。。例如,早上6点会将时间更新为12:25,而上午10点完全不起作用。我想我只是做错了什么,但我已经上下搜索过了,似乎这不是一个常见的问题。。有谁有更好的主意吗?!这快把我逼疯了 单元格H1中的值确实发生了变化,因此我确实需要以这样

我无法使用VBA将时间修改为包含日期和时间的单元格中的特定时间

该单元格的格式为“d/mm/yyyy h:mm AM/PM”,我正在获取一个只有时间的单元格,格式为“h:mm AM/PM”,并尝试使用此代码位来更新时间部分(t1用于子…的其余部分)

这似乎是断断续续的。。例如,早上6点会将时间更新为12:25,而上午10点完全不起作用。我想我只是做错了什么,但我已经上下搜索过了,似乎这不是一个常见的问题。。有谁有更好的主意吗?!这快把我逼疯了


单元格H1中的值确实发生了变化,因此我确实需要以这样或那样的方式从中提取值。

可能是这样的:

Sub Macro1()
t1 = Range("H1").Value
Range("D3").Select
ActiveCell.Value = ActiveCell + t1
End Sub

您提到了单元格格式;请注意,当您仅检索如下所示的值时,单元格格式并不重要:
dt=ActiveCell

还请注意,可以将日期存储为text
=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

你能添加日期和时间吗,比如
ActiveCell=DateValue(ActiveCell)+TimeValue(t1)
?看起来不是这样。。我得到一个“类型不匹配”错误如果ActiveCell或T1无法分别转换为dateValue或TimeValue,您将得到一个类型不匹配的错误完美-谢谢!我只是改变了dt和tm的值,从H1开始设置时间值,而不是日期。(额外感谢您提供的格式示例,非常感谢您提供的额外细节)
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