即使列是日期格式,计算日期之间的间隔也会产生#VALUE错误

时间:2016-06-03 14:40:35

标签: excel date excel-formula ms-office

我有2个日期列 - 两者的日期格式都在"数字类型"。 但是当我用= C2-B2进行间隔时,我得到错误。在节目计算下我得到了

"9/4/2015" - 42252

给我42252的列是日期格式。我甚至插入了一个新列,将格式更改为DATE并输入了日期,它给了我同样的错误。

我甚至尝试了DATEDIF(start_date,end_date,interval),它给了我错误。

2 个答案:

答案 0 :(得分:1)

如果"9/4/2015"是文字,请使用工作表DATEVALUE function来获得真实日期,而不是看起来像日期的文字。在任何数学运算中使用文本都会产生#VALUE!错误。

对于截至1899年12月31日的每一天,Excel日期可被视为 1 。这使9/4/2015(2015年9月4日)等于42251。通过逻辑扩展,42552将等于9/5/2015(2015年9月5日)。

42251 - 42252 = -1

Excel无法识别否定日期;它将返回一长串哈希标记(例如######################)。将单元格格式化为数字以接收-1

使用DATEDIF function时,开始日期必须在结束日期之前。 DATEDIF不会返回负数;它会抛出#NUM!而错误。

答案 1 :(得分:0)

如果C2中有引号,你需要这样的东西

Private Sub CopyItemsBtn_Click() Dim rSelected As Range, c As Range Dim wb wb = Application.GetOpenFilename(filefilter:="Excel Files,*.xl*;*.xm*") If wb <> False Then Workbooks.Open wb End If 'Prompt user to select cells for formula On Error Resume Next Set rSelected = Application.InputBox(Prompt:= _ "Select cells to copy", _ Title:="Transfer Selection", Type:=8) On Error GoTo 0 If rSelected Is Nothing Then MsgBox "no range selected", vbCritical Exit Sub End If For Each c In rSelected With ProformaToolForm.ItemsLB .AddItem .List = rSelected.Cells.Value End With Next End Sub