无法在VBA中正确获取时间值

时间:2017-10-24 20:57:41

标签: excel vba

我在excel中有两列包含格式的时间和日期:yyyy / mm / dd h:mm:ss AM" (或PM)我最终必须将时间和日期发送到在日历中创建Outlook约会的方法。在每个循环中,这是如何提取日期和时间

startDate = CDate(Left(row.Columns(5), 10))
startTime = CDate(Right(row.Columns(5), 11))

问题是当时间是12:00 AM,它在excel表中变成0:0:0,当这个值发送到outlook方法时,我得到一个"运行时错误:类型不匹配:不能强制参数值。 Outlook无法翻译您的字符串。"

  With myapt
        .Subject = Subject
        .body = superString
        .Start = startDate & " " & startTime

我是否正确处理了日期和时间值?我该如何解决这个问题?谢谢

1 个答案:

答案 0 :(得分:0)

假设您的Excel单元格包含日期/时间值,而不仅仅是看起来像日期和时间的文本(以及看似情况的评论),您可以使用以下代码:

With myapt
    .Subject = Subject
    .body = superString
    .Start = row.Columns(5).Value2

创建一个单独的日期变量和时间变量是没有意义的,只是将它们重新添加到一起以获得最初在单元格中的数字。