Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel DateDiff用于一列日期_Excel_Vba_Datediff - Fatal编程技术网

Excel DateDiff用于一列日期

Excel DateDiff用于一列日期,excel,vba,datediff,Excel,Vba,Datediff,我能帮上忙吗,我想在这样一列中计算出日期的差异 显然,我已经尝试了for循环,但它从来没有那么容易,有人能帮忙吗:)如果您的日期都在列a中,请放入列BA3-A2并向下拖动所有有日期的单元格(最后一个除外) 如果您正试图通过VBA实现这一目标,假设您的日期在A2:A6范围内,请尝试以下方法 Sub DateDif() Dim lr As Long, i As Long lr = Cells(Rows.Count, 1).End(xlUp).Row For i = 2 To lr - 1

我能帮上忙吗,我想在这样一列中计算出日期的差异


显然,我已经尝试了for循环,但它从来没有那么容易,有人能帮忙吗:)

如果您的日期都在列
a
中,请放入列
B
A3-A2
并向下拖动所有有日期的单元格(最后一个除外)


如果您正试图通过VBA实现这一目标,假设您的日期在A2:A6范围内,请尝试以下方法

Sub DateDif()
Dim lr As Long, i As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lr - 1
    If IsDate(Cells(i, 1)) And IsDate(Cells(i + 1, 1)) Then
        Cells(i, 2) = DateDiff("d", Cells(i, 1), Cells(i + 1, 1))
    End If
Next i
End Sub
或者像这样尝试,这是很容易调整

Sub DateDif()
Dim lr As Long
Dim Rng As Range, Cell As Range
lr = Cells(Rows.Count, "B").End(xlUp).Row
Set Rng = Range("B2:B" & lr)
For Each Cell In Rng
    If IsDate(Cell) And IsDate(Cell.Offset(1, 0)) Then
        Cell.Offset(0, 1) = DateDiff("d", Cell, Cell.Offset(1, 0))
    End If
Next Cell
End Sub

和什么相比日期差?上面那个?下面那个?当前日期?显示您迄今为止所做的尝试tom下面是一个,列在下面,因此希望日期差异(以天为单位)位于右侧:)您可以在Excel公式中从另一个中减去一个,以得到您想要的。不需要任何花哨的东西,但我更喜欢使用VBA和for循环,我不喜欢同时使用两者:(奇怪吗?我很喜欢写它。是的,很奇怪。Excels的内置功能比vba更高效。你发现它“奇怪”,这是在给你的cpu增加性能负担。Excel也从来没有被设计成一个或另一个。很抱歉,它们不是。它们位于单元格B10下方:)没有问题。我添加了另一种方法,您可以轻松调整。非常感谢,这就是我想要做的,因为我相信您可以理解这对初学者来说很复杂,谢谢兄弟