我有一个ActiveX组合框。它的ListFillRange是另一个工作表上的范围。它找到日期,但是当我选择它们时,我得到了这个奇怪的值。有人知道最新情况以及如何解决吗?
我曾尝试通过VBA代码对其进行修复,但由于存在相同的问题,我将不胜感激。
示例代码:
Private Sub ProdDateCombobox_DropButtonClick()
ProdDateCombobox.ListFillRange = "ProductionList"
End Sub
ProductionList是具有日期的单元格D2; D100的范围
答案 0 :(得分:0)
您得到的数字是自1900年1月1日以来的天数-这就是Excel存储日期的方式。
该问题的一种解决方案是:
您的日期(格式为日期)在D2:D100
范围内,名为ProductionList
。
当您选择下拉菜单时,日期会正确显示在下拉菜单中,但所选日期将显示为数字-2018年7月4日,显示数字43285(自1900年1月1日以来的天数)。
=TEXT(D2,"dd/mm/yyyy")
,其中D2
是ProductionList
命名范围内的第一个日期。将公式向下拖动到日期的末尾。 您的原始列表现在应该可以在组合框中正确显示,但是在尝试将日期与链接的单元格进行比较时会遇到问题。
例如,如果链接的单元格为A5
,则公式=MATCH(DATE(2018,3,1),$A$5,0)
将返回#N/A
。
要解决此问题,请在单元格B5
中输入一个公式:=A5+0
并与此进行比较。在文本日期上加上0的行为将迫使其重新计算为真实日期。