基于日期Excel VBA设置单元格值

时间:2015-02-05 16:41:10

标签: excel vba date comparison

当宏在任何给定日期运行时,它应检查当前日期并将其与一年中的不同季度进行比较,然后根据我们所处的季度更改某些单元格的值。 / p>

这是我到目前为止所做的事情,我试图追加到当前宏的末尾:

Sub Dates()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim mgr, rsk As Range
    Dim d, Q1B, Q1E, Q2B, Q2E, Q3B, Q3E, Q4B, Q4E As Date

    Set wb = ActiveWorkbook
    Set ws = wb.Sheets("Mutual")
    Set mgr = ws.Range("B37")
    Set rsk = ws.Range("F37")

    d = Date
    Q1B = DateValue("01/01/2015")
    Q1E = DateValue("03/31/2015")
    Q2B = DateValue("04/01/2015")
    Q2E = DateValue("06/30/2015")
    Q3B = DateValue("07/01/2015")
    Q3E = DateValue("09/30/2015")
    Q4B = DateValue("10/01/2015")
    Q4E = DateValue("12/31/2015")

    If d <= Q1E Then
        mgr.Value = "Works 1"
        rsk.Value = "Works 2"
    End If


End Sub

我是在正确的道路上吗?我确信这是一种更优雅的方式来写这个,但这是我第一次编写自己的VBA代码。

1 个答案:

答案 0 :(得分:0)

不需要宏来试试这个公式

=IF(COUNTA(A2)=1,"Q"&INT((MONTH(A2)/3.25)+1)&" - "&YEAR(A2),"")

其中A2是包含日期的单元格