繁体   English   中英

从字符串转换日期和/或时间时,VBA转换失败

[英]VBA conversion failed when converting date and/or time from character string

当我搜索互联网时,这是一个经常被问到的问题,但是没有一个答案似乎适合我的问题。 希望您能提供帮助。

我正在尝试使用代码从数据库收集日期:

Sheets("Data").Select
Dim sh1 As Worksheet
Set sh1 = ActiveWorkbook.ActiveSheet

sh1.Activate
If ActiveSheet.FilterMode Then
    Range("ActivityPlan[[#Headers],[AIDA]]").Select
    ActiveSheet.ShowAllData
End If

Dim lLastRow As Long
'Get Last row
lLastRow = sh1.Range("C" & Rows.Count).End(xlUp).Row

并使用以下三个示例的类型定义了我的值

     If Not sh1.Cells(i, 19) = "" Then
        tMaintSimulStartDate = Format(sh1.Cells(i, 19), "MM/dd/yyyy")
     End If

     tMaintExpDate = Format(sh1.Cells(i, 20), "MM/dd/yyyy")

     If Not sh1.Cells(i, 21) = "" Then
        tUpBaseDteFix = Format(sh1.Cells(i, 21), "MM/dd/yyyy")
     Else
        tUpBaseDteFix = vbNull
     End If

他们似乎都不起作用。 我只是收到错误“从字符串转换日期和/或时间时转换失败”,VBA标记了我的“ CN.Execute(SQL)”

我认为您的单元格sh1.cells(i,19), (i, 20), (i,21)中的值很可能只是字符串。 它们可能看起来像日期,但Excel不能将其识别为日期。

最好的选择是在VBA中使用DateValue()函数。 这将输入一个字符串,并吐出一个实际的,诚实至善的日期。 如果失败,那是因为单元格中的Date格式是DateValue()无法识别的。 在这种情况下,您可能必须从单元格中解析出日期值,然后将其发送到DateValue()以将其转换为正确的日期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM