2011-12-03 3 views
0

나는 엑셀 매크로에서 일하고있다. 내가 모든 날짜를 특정 달에 속하게해야합니다. 아무도 그것을 달성하는 방법을 말할 수 있습니까?특정 달의 날짜를 얻는 방법

업데이트 : 번호 배열로 수신하고 싶습니다. 네임 스페이스 "System"에 속한 Date 관련 함수를 사용하려고했습니다. 하지만, "개체 또는 메서드를 찾을 수 없습니다"오류가 표시됩니다. 그래서, 나는 Issan의 아이디어를 사용하고 있습니다 (아래 참조). 그러나 "개체가이 속성 또는 메서드를 지원하지 않습니다."라는 오류가 발생합니다.

편집 : 날짜로 변수를 선언 한 후 "개체가이 속성 또는 메서드를 지원하지 않습니다."오류가 발생했습니다. VBA에서 사용 가능한 객체는 선언 된 변수에 달려 있다고 생각합니다. 여러분 모두에게 감사드립니다.

+0

에 대한 EOMONTH을 찾을 수 있습니다. downvote에 대한 사실을 언급하면 ​​downvote는 의미가 있습니다. Else 그것은 어린이 놀이 같은 무언가입니다. – prabhakaran

+1

'1'에서'NumberOfDaysInMonth'까지'for' 루프를 만드시겠습니까? 추신 나는 당신을 지금까지 downvote하지 않았다, 그러나 당신의 질문은 진짜로 개량 될 수 있었다. –

+0

@Doc_Brown 그게 전부입니다. 나는 VB에 매우 익숙하다. 그리고 나는 그것에 대한 모범을 찾지 못했습니다. 나는 초보자라는 것을 잊었다. – prabhakaran

답변

2

다음

당신이 무엇을 제안 할 수있는 충분한 정보가 아니다 (특정 월에 매일 날짜의 배열을 생성 할 수있는 방법은 (당신이 '엑셀 매크로 작업'말할 때문에 당신이 VBA를 의미 가정) 원하는 형식이므로 날짜 배열로 가정합니다).

Sub GenerateDates() 

Dim Days() As Date 
Dim DaysInMonth As Long, i As Long 
Dim Year As Long, Month As Long 

' Example: Feb, 2006 (leap year) 
Year = 1996 
Month = 2 

DaysInMonth = DateSerial(Year, Month + 1, 1) - _ 
       DateSerial(Year, Month, 1) 

ReDim Days(1 To DaysInMonth) 
For i = 1 To DaysInMonth 
    Days(i) = DateSerial(Year, Month, i) 
Next 

'Do as you wish with the array of 29 days 

End Sub 

작동 원리 : 당신은 위의 dateserial 수학을 사용하여 월의 일 수를 얻을 수 있습니다. 이렇게하면 윤년을 고려해도 적절한 일수를 확보 할 수 있습니다. 그런 다음 일의 배열을 redim하고 배열을 채 웁니다.

+0

"개체가이 속성 또는 메서드를 지원하지 않습니다"라는 오류가 발생합니다 – prabhakaran

+0

예를 들어 트랜스 포즈 부분에서 어떤 일이 벌어지고 있을까요? 그것은 엑셀의 버전에 달려있을 것입니다. 정확히 무엇을 원하십니까? VBA에서 사용할 날짜 배열? – aevanko

+0

끝 부분에있는 예제를 삭제했습니다. 어쨌든 실용적이지 않았습니다. :) – aevanko

1

VBA를 사용하려면 Issun의 대답이이 문제를 해결하는 가장 좋은 방법입니다.

그러나 이것은 아마도 더 큰 문제의 일부이며 귀하의 질문에서 우리는 당신이 원하는 것을 볼 수 없습니다.

Excel 스프레드 시트를 사용하여 전체 응용 프로그램을 작성하는 데 도움이 될 수 있음을 잊지 마십시오.

예를 들어 수식=EOMONTH(NOW(),0)을 사용하면 당월 마지막 날을 볼 수 있습니다. 또는 다른 날짜에 원하는 방식으로 적용하십시오.
참고 :EOMONTH 수식이 존재하도록 Analysis ToolPak Add-in을 확인하는 것을 잊지 마십시오.

[편집] 당신은 모든 downvoters에 대한 요청 @downvoter 좀 더 많은 정보를 원하시면 this blog's article

관련 문제