當宏在任何給定日期運行時,它應檢查當前日期並將其與年份中的不同季度進行比較,然後根據季度中的哪個季度更改某些單元格的值我們在根據日期Excel VBA設置單元格值VBA
這是我到目前爲止,我試圖以附加到當前宏末尾:
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代碼。
細胞只是擡頭:只有'Q4E'被宣佈爲'Date'在你的代碼,該行的所有其他變量都是「Variant」。 VBA不支持這樣的聲明。 – 2015-02-05 17:28:06
因此,我必須將它們全部都聲明爲日期?或者在每個語句的前面使用Set都是一樣的? – Catalog 2015-02-05 17:57:37
是的,你必須將它們全部作爲日期來聲明,但你仍然可以在一行上完成。 – 2015-02-05 18:16:21