2011-05-03 10 views
5

사용자가 매크로 단추를 클릭 할 때 나타나는 대화 상자가 있습니다. 이 대화 상자는 주로 채워지며 (날짜, 전자 메일, 제작자, 웹 사이트 등이 채워짐) 모든 사용자가 자신의 이름을 입력해야합니다. 문제는 입력 한 날짜가 고정되어 있으므로 "3/3/11"을 입력하면 다른 사람이 변경하기 전까지 그대로 유지됩니다.VBA Excel 텍스트 상자에 현재 날짜 제공

사용자가 텍스트 상자에 현재 날짜를 표시하는 방법이 있는지 궁금합니다. 사용자가 어떤 이유로 든 날짜를 변경하지 않는 한. 텍스트 상자의 "값"섹션 (예 : "getDate()"및 "Date()")에 다른 것들을 넣으려고했지만 지금까지 성공하지 못했습니다.

제시 Smothermon

답변

11

는 이벤트를 초기화 양식을 사용 예 :

Private Sub UserForm_Initialize() 
    TextBox1.Value = Format(Date, "mm/dd/yyyy") 
End Sub 
+0

이 질문을하기 전에 먼저 시도해 보았습니다. 나는 그 코드를 잘못된 영역에 넣을 것이라고 생각한다. 다음과 같은 일이 발생합니다 : 사용자가 매크로 버튼을 클릭하고, 버튼이 사용자 폼을 열고, 사용자가 무엇이든 입력하고 "실행"버튼을 클릭합니다. 사용자 서식이 열리기 전에이 코드를 넣을 수 있습니까? 그렇다면 런타임 오류 "424"객체가 필요합니다. –

+0

폼 디자이너를 마우스 오른쪽 단추로 클릭하고 코드보기를 선택하십시오.위의 코드를 입력하십시오. 'TextBox1'을 텍스트 상자가 호출 된 것으로 변경하십시오. – Graham

+2

쿨한 콩, 효과가있었습니다. 사이드 노트에서 "코드보기"에 갔을 때 자동으로 "UserForm_Click()"으로 이동하여 "UserForm_Activate()"로 변경했습니다. 고마워요. –

1

에게, 이것은 LinkedCell 속성을 사용하여 텍스트 상자에서 해당 셀에 날짜는 셀에서 사용하고자하는 기능, 링크를 넣어하는 것입니다 수있는 쉬운 방법을 주셔서 감사합니다.

VBA에서 당신이 사용하려고 할 수 있습니다

textbox.Value = Format(Date(),"mm/dd/yy") 
+0

그래서 매크로 버튼 뒤에 숨길 수 있습니까? 그리고 지금은 텍스트 상자의 "값"섹션에 입력 된 내용이 리터럴 문자열로 처리 된 것처럼 느껴집니다. LinkedCell을 살펴 보겠습니다. 감사합니다. –

0

당신은 가까웠다. UserForm_Initialize() 이벤트 처리기에서이 코드를 추가

tbxDate.Value = Date 
+0

코드를 어디에 넣으시겠습니까? 사용자 폼이 팝업되지만 실제로 값을 할당 할 수있는 곳은 없습니다. 그것은 이전에 입력 한 사전 할당 된 값이고 사용자가 입력 한 값입니다. 또한 모든 값을 입력 한 후에 값을 변경하고 싶지 않은 경우 사용자가 원하는 값으로 변경하려고합니다. 도움을 주셔서 감사합니다 –

+0

프로젝트 탐색기에서 양식을 마우스 오른쪽 단추로 클릭하고 코드를 연 다음 UserForm_Initialize() 이벤트 핸들러에 코드를 추가하십시오. – Arnoldiusss

1

하지 텍스트에 대한 디자인 timeProperties에서 양식을 보여주는 코드에서 값을 설정 상자.

Private Sub UserForm_Activate() 
    Me.txtDate.Value = Format(Date, "mm/dd/yy") 
End Sub 
0

다음은 좀 더 간단한 버전입니다. 셀에 날짜가 나타나기 만하면됩니다.

=Today()  

원하는 날짜 형식으로 셀을 서식 지정하고 Bob의 삼촌을 서식 지정하십시오. :)

+1

이것은 셀의 수식으로 작동하지만 질문은 텍스트 상자에 대한 것이므로 VBA 함수 여야합니다. – assylias

+0

또한 = today()는 휘발성 함수이므로 해당 셀을 참조하는 재 계산 체인의 모든 항목도 휘발성이 있음을 의미합니다. 기피! – Andrew

0

사실,보기보다 복잡합니다.

Sub 
    today_1() 
    ActiveCell.FormulaR1C1 = "=TODAY()" 
    ActiveCell.Value = Date 
End Sub 
+0

이 질문은 원래 질문에 대답하지 않습니다. 또한 셀 수식을 설정하고 다음 단계에서 덮어 씁니다. – arcadeprecinct

0

나는 이것이 매우 오래된 게시물입니다 알지만, 당신은 항상 활성화하기 위해 조정할 수 있습니다

하기 전에이 사용했습니다. 이제 방법은 또 다른 방법입니다. 그냥 옵션

Private Sub UserForm_Initialize() 

Textbox1.Text = Format(Now(), "mmddyyyhhmmss") 

End Sub