2015-02-05 3 views
0

주어진 날짜에 매크로가 실행되면 현재 날짜를 확인하고 해당 연도의 다른 분기와 비교 한 다음 분기 기준으로 특정 셀의 값을 변경해야합니다 우리는에있어날짜에 따른 셀 값 설정 Excel 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 

암 I을 옳은 길? 이것을 작성하는 좀 더 우아한 방법이있을 것이라고 확신합니다. 그러나 이것은 내 자신의 VBA 코드를 처음 작성하는 것입니다.

+0

가 포함 된 세포 그냥 헤드 업 : 단지'Q4E' 코드에서 Date''로 선언한다 그 행에있는 다른 모든 변수는'Variant'입니다. VBA는 그런 선언을 지원하지 않습니다. –

+0

그래서 나는 그들 모두를 날짜로 선언해야합니까? 또는 각 문장 앞에 Set를 사용하면 동일하게 작동합니까? – Catalog

+0

예, 모두 날짜로 선언해야하지만 한 줄로 처리 할 수는 있습니다. –

답변

0

매크로 시도 필요 없음이 공식 대신

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

날짜

+0

분기마다 셀 값을 변경할 수 있습니까? 내가 매크로를 사용하는 이유는 셀 값이 매 분기마다 바뀔 것이기 때문입니다. 나의 예는 1/4을 채우지 만 두 셀에 대해 각 분기마다 다른 값을 쓸 것입니다. – Catalog

+0

귀하의 의견을 이해할 수 없다고 생각합니다. 좀 더 자세히 설명해 주실 수 있습니까 – Jeanno

+0

죄송합니다. 매 분기마다 셀에 다른 것을 보여주고 싶습니다. 나의 이해에서 셀의 IF 수식은 비교가 완료되면 진위 또는 거짓 진술을합니다. 그러면 분기별로 4 대신에 두 가지를 표시 할 수 있습니다. – Catalog