|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
按司机及单号排序的情况下,用以下代码可实现
- Option Explicit
- Sub Main()
- Dim arr As Variant
- Dim lngR As Long, lngC As Long
- Dim strEndTime As Variant
-
- arr = Sheet1.Range("B3:G40")
-
- For lngR = UBound(arr) To 1 Step -1
- If lngR = 1 Then
- arr(lngR, 5) = IIf(strEndTime = "", arr(lngR, 4), strEndTime)
- ElseIf (Abs(DateDiff("h", arr(lngR - 1, 4), arr(lngR, 3))) > 3) Then
- arr(lngR, 5) = IIf(strEndTime = "", arr(lngR, 4), strEndTime)
- strEndTime = ""
- ElseIf (arr(lngR - 1, 1) <> arr(lngR, 1)) Then
- arr(lngR, 5) = IIf(strEndTime = "", arr(lngR, 4), strEndTime)
- strEndTime = ""
- Else
- strEndTime = IIf(strEndTime = "", arr(lngR, 4), strEndTime)
- End If
- Next
-
- For lngR = 1 To UBound(arr)
- If arr(lngR, 5) <> "" Then
- arr(lngR, 6) = Round((arr(lngR, 5) - arr(lngR, 3)) * 24, 1)
- End If
- Next
-
- Sheet1.Range("B3").Resize(UBound(arr), UBound(arr, 2)) = arr
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|