VBA 날짜(정수)
기본 정수를 구할 수 있는 방법이 있나요?DateVBA의 함수? Excel이 메모리에 저장한 정수를 일수로 기술하는 것을 말합니다(시간을 포함하면 부동일 수 있습니다.저는 정수 부분에만 관심이 있어요.그것에는 다른 기능이 있나요?
예를 들어 오늘()의 경우 40877을 돌려받고 싶습니다.
날짜가 VB(A)의 정수가 아니라 Double입니다.
날짜 값을 다음에 전달하면 얻을 수 있습니다.CDbl().
CDbl(Now()) ' 40877.8052662037
매뉴얼에서 다음 항목을 참조하십시오.
1900년 날짜 제도
1900년 날짜 체계에서 지원되는 첫 번째 날은 1900년 1월 1일입니다.날짜를 입력하면 날짜가 1900년 1월 1일의 경과 일수를 나타내는 일련 번호로 변환됩니다.예를 들어 1998년 7월 5일을 입력하면 Excel은 날짜를 일련 번호 35981로 변환합니다.
1900년대 시스템에서는40877.805...1900년 1월 1일(2011년 11월 29일) 이후 40,876일, 1일(~19:19시) 중 ~80.5%를 나타냅니다.Excel에는 1904 기반 시스템 설정이 있으며, 사용 시 번호가 지워집니다(워크북별 설정).
정수 부분을 가져오려면
Int(CDbl(Now())) ' 40877
그 결과,
긴 소수점 이하가 없는 2배(예: 무엇)Floor()다른 언어에서도 가능합니다).
사용.CLng()또는Round()정오 이후에 호출하면 "미래의 하루"가 반환되는 반올림 결과가 됩니다.
그냥 사용하다CLng(Date).
를 사용해야 합니다.Long것은 아니다.Integer이 경우 현재 날짜 값은 32767보다 커집니다.
Public SUB test()
Dim mdate As Date
mdate = now()
MsgBox (Round(CDbl(mdate), 0))
End SUB
mdate 및 Now()와 같은 날짜 문자열에 벨로우 코드 예를 사용할 수 있습니다.또한 에이징과 같이 두 날짜 사이의 차이를 계산할 수도 있습니다.
Public Sub test(mdate As String)
Dim toDay As String
mdate = Round(CDbl(CDate(mdate)), 0)
toDay = Round(CDbl(Now()), 0)
Dim Aging as String
Aging = toDay - mdate
MsgBox ("So aging is -" & Aging & vbCr & "from the date - " & _
Format(mdate, "dd-mm-yyyy")) & " to " & Format(toDay, "dd-mm-yyyy"))
End Sub
NB: 사용중CDate날짜 문자열을 유효 날짜로 변환합니다.
Office 2007에서 사용하고 있습니다:)
언급URL : https://stackoverflow.com/questions/8330838/vba-date-as-integer
'programing' 카테고리의 다른 글
| 한 시트에서 다른 시트로 n번째 줄마다 복사 (0) | 2023.04.24 |
|---|---|
| 애플리케이션을 올바르게 기동할 수 없었습니다(0xc000007b). (0) | 2023.04.24 |
| 프로그램 시작 후 콘솔을 열지 않고 배치 파일에서 프로그램을 실행하려면 어떻게 해야 합니까? (0) | 2023.04.24 |
| WPF ListBox의 ItemTemplate와 ItemContainerStyle의 차이점은 무엇입니까? (0) | 2023.04.24 |
| PowerShell에서 각 명령이 종료될 때까지 기다렸다가 다음 명령을 시작하도록 지시하는 방법은 무엇입니까? (0) | 2023.04.24 |