2012-11-30 4 views
0

Excel vba의 Format() 함수에 문제가 있습니다. 날짜 형식이 지정된 셀의 서식을 변경하여 표시 방법을 변경하려고합니다. 그러나, 내가 그것을 할 수있는 형식을 호출 할 때마다 오류가 발생합니다 : "컴파일 오류 : 잘못된 인수 또는 잘못된 속성 할당 번호."Format 함수의 오류

Sub test() 
    Dim given 
    given = DateSerial(2012, 10, 11) 
    dateformat = Format(given, "dd/mm/yy") 
    MsgBox given & vbCrLf & dateformat 

End Sub 

이 그냥 테스트 함수 자체에서 작동하고 "11/10/12"를 반환해야합니다 : 여기

는 코드입니다. 이 코드는 다른 컴퓨터에서도 작동합니다. 무엇이 잘못 될 수 있습니까?

답변

0

현재 given 변수를 기본적으로 변형으로 선언하고 있습니다. Date 데이터 형식으로 선언하십시오. 그리고 안전을 위해 CDate()Date으로 보내 Format()에 넣고 원하는 날짜 스타일로 포맷하십시오.

또한 DateSerial 입력은 다음 형식이어야합니다. 네 사건 에선 괜찮은거야. ;)

DateSerial(CInt(x), CInt(y), CInt(z) 

코드 :

OPTION EXPLICIT '------------ please add this to your code to begin for better coding 

Sub test() 
    Dim given as Date '-------- define given as Date type 
    Dim dateformat as Date 
    given = DateSerial(2012, 10, 11) 
    dateformat = Format(CDate(given), "dd/mm/yy") '--------- anyway wrap with CDate() to be sure 
    MsgBox given & vbCrLf & dateformat 

End Sub 
+0

명시 적 옵션은 항상 거기에 있습니다. 그냥 정상적으로 포함시키지 마십시오. 나는 cdate를 사용하여 시도했지만 이번에는 다른 오류 메시지가 나타납니다. 그것은 모듈이 아닌 변형을 기대하고있었습니다. 시도해 주셔서 감사합니다. 지금은 서식 문제를 포기합니다. 조금 우스꽝 스럽다면 그 일을 잘 처리 할 수 ​​있었다고 썼다. – uncertaintea

+0

'dateformat' 변수가'Date'라고 가정 했으므로 진지하게 묻지 않았습니다. – bonCodigo

+0

"given"이라는 함수/하위 함수가 없습니다. 이 경우 인수 (...)를 함수로 기대할 때 잘못된 인수 수에 대해 불평하고 CDate에서 사용할 때 불평 할 것입니다. 그냥 생각 (전에 나에게 일어난). 'given'대신 다른 변수 이름을 사용하면 차이가 있는지 확인하십시오. 만약 그렇다면 VB는 어딘가에서 – ssollinger

3

나는 Worksheet_Activate()는 오늘에 넣고 내 머리를 잡아 당겨 된 코드와이 문제를했다. 그래서 시도 VBA.Format

에 포맷을 변경하여 해결 : 일부 Sub 당신이 오류가 발생하여 project.Hence에서 다른 곳 Format라는 이름의있을 수 있기 때문에

Sub test() 
    Dim given 
    given = DateSerial(2012, 10, 11) 
    dateformat = VBA.Format(given, "dd/mm/yy") 
    MsgBox given & vbCrLf & dateformat 

End Sub