我有2个日期列 - 两者的日期格式都在"数字类型"。 但是当我用= C2-B2进行间隔时,我得到错误。在节目计算下我得到了
"9/4/2015" - 42252
给我42252的列是日期格式。我甚至插入了一个新列,将格式更改为DATE并输入了日期,它给了我同样的错误。
我甚至尝试了DATEDIF(start_date,end_date,interval),它给了我错误。
答案 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