【问题标题】:Type mismatch in Excel 2013Excel 2013 中的类型不匹配
【发布时间】:2016-10-06 09:13:15
【问题描述】:

在 Excel 2010 中一切正常,但在 Excel 2013 中出现“类型不匹配”错误。问题在于以下代码行(我尝试过不同的变体)。

startDate = startDateCell.Value
startDate = CDate(startDateCell.Value)
startDate = CDate(Format(startDateCell.Value, "short date"))

startDateCell 的内容是 f.e.像“12.06.2016”这样的字符串

startDate 是一个日期变量

【问题讨论】:

  • 你试过DATEVALUE()吗?
  • 听起来您在 2013 机器上的区域设置无法识别带有句号分隔符的日期。
  • 机器区域设置为欧盟,日期为欧盟格式。
  • DATEVALUE() 也无济于事

标签: vba excel date type-mismatch


【解决方案1】:

它是美国格式的日期吗?我假设不是基于您发布的时间。问题可能是 vba 将其识别为美国日期并将 13/1/2016 解释为 1/13/2016(使用英国逻辑),引用第 13 个月,这会产生错误。

Function Convertings() As String
  Convertings = Format(DateValue("13/1/2016"), "mm/dd/yyyy")
End Function

【讨论】:

  • 这就是我的意思,我认为它需要是美国格式,所以它目前在工作表中为 ddmmyyyy,vba 看着它并将其解释为 mmddyyyy,因为它是美国的。如果您可以让任何值起作用,您可以使用 datepart 进行检查?
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-28
相关资源
最近更新 更多