Excel ActiveX组合框将所选日期显示为数字而不是日期

时间:2018-07-04 13:44:48

标签: excel vba

我有一个ActiveX组合框。它的ListFillRange是另一个工作表上的范围。它找到日期,但是当我选择它们时,我得到了这个奇怪的值。有人知道最新情况以及如何解决吗?

我曾尝试通过VBA代码对其进行修复,但由于存在相同的问题,我将不胜感激。

示例代码:

Private Sub ProdDateCombobox_DropButtonClick()
ProdDateCombobox.ListFillRange = "ProductionList"
End Sub

ProductionList是具有日期的单元格D2; D100的范围

1 个答案:

答案 0 :(得分:0)

您得到的数字是自1900年1月1日以来的天数-这就是Excel存储日期的方式。

该问题的一种解决方案是:

您的日期(格式为日期)在D2:D100范围内,名为ProductionList

当您选择下拉菜单时,日期会正确显示在下拉菜单中,但所选日期将显示为数字-2018年7月4日,显示数字43285(自1900年1月1日以来的天数)。

  • 在空白范围内输入公式=TEXT(D2,"dd/mm/yyyy"),其中D2ProductionList命名范围内的第一个日期。将公式向下拖动到日期的末尾。
  • 仅在原始列表上复制此新范围的公式并将粘贴特殊作为

您的原始列表现在应该可以在组合框中正确显示,但是在尝试将日期与链接的单元格进行比较时会遇到问题。

例如,如果链接的单元格为A5,则公式=MATCH(DATE(2018,3,1),$A$5,0)将返回#N/A

要解决此问题,请在单元格B5中输入一个公式:=A5+0并与此进行比较。在文本日期上加上0的行为将迫使其重新计算为真实日期。