我有一個excel沒有正確識別年份的問題。excel vba中的年份n + 1 <年n
這裏是我的代碼
' Sort value
max = Sheets("booking").Cells(Rows.count, "A").End(xlUp).Row
Range("A1:H" & max).Select
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Add Key:=Range("D2:D" & max) _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Booking").Sort.SortFields.Add Key:=Range("A2:A" & max) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Booking").Sort
.SetRange Range("A1:H" & max)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' mark past booking in italic and in red if not validated
For L = 2 To max
If Format(CDate(booking.Cells(L, 5).Value), "dd-mm-yy") < Format(CDate(cells(1,10).value), "dd-mm-yy") Then
booking.Cells(L, 5).EntireRow.Font.Italic = True
If booking.Cells(L, 5).Offset(0, 3).Value = "" Then
booking.Cells(L, 5).EntireRow.Font.Color = vbRed
Else
booking.Cells(L, 5).EntireRow.Font.Color = vbBlack
End If
End If
Next L
列d是完整的日期格式化的dd-mm-yy
細胞(1,10) = now()
當代碼需要在訂單按日期排序:NP,它把2014年訂單在2013年訂單前
但是
當鱈魚e現在應用<日期的斜體格式,2014年的訂單被認爲是過去的,並且代碼將它們以斜體表示
我在做什麼錯了?
您不應該使用「格式」來比較日期。你只是不需要,它可能會讓所有的東西都變得麻木。 – JMax