簡體   English   中英

VBA從另一列中的日期減去今天的日期並返回一個數字

[英]VBA To subtract today's date from a date in another column and return a number

希望您能提供幫助。 我在下面有一小段代碼。 我遇到的問題是,我試圖從C列中的日期中減去今天的日期(請參見圖1),然后在D列中返回一個數值結果,然后在D列中繼續該公式,直到該列中沒有剩余值為止C減去。

因此,今天的日期是2017年9月3日,我想從C2中的日期中減去該日期,2017年3月7日在D2中給我2,然后繼續到D列,直到C具有空白單元格。

正在調試的代碼段是Range("D2").Formula = DateDiff(C2, Date, "d")

我得到的錯誤是運行時錯誤13類型不匹配。

它所屬的較大代碼段是

Public Sub Activate_Sheet()



Worksheets("In Progress").Activate
Columns.AutoFit
Range("N:N").EntireColumn.Delete
Range("D1").Value = "# days open"
Range("D2").Formula = DateDiff(C2, Date, "d")

End Sub

與往常一樣,我們非常感謝任何幫助。

圖片1

在此處輸入圖片說明

DateDiff函數參數:

  • 在您的情況下, 間隔 “ d”(表示天數)是第一個參數,而不是第三個參數。

您不能在DateDiff函數中使用C2 ,但是需要通過使用Range("C2").Value從該單元格獲取Range("C2").Value

另外, DateDiff將以天為單位返回數值結果,因此您需要在Range("D2").Value而不是在Formula

修改您的代碼以:

Range("D2").Value = DateDiff("d", Range("C2").Value , Date)

編輯1 :要為C列中的所有已占用單元運行此代碼:

Dim LastRow  As Long, i As Long
With Worksheets("In Progress")
    LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row

    For i = 2 To LastRow
        .Range("D" & i).Value = DateDiff("d", .Range("C" & i).Value, Date)
    Next i
End With

代替

Range("D2").Formula = DateDiff(C2, Date, "d")

采用

Range("D2").Formula = "=DAYS(TODAY(),C7)"

.Formula必須是一個公式,你寫它變成一個細胞(英文Excel版本)。 如果您具有非英語(本地化)的Excel版本,則可以使用.FormulaLocal以本地化的語言編寫公式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM