346페이지 3-1번 문제를 풀고있습니다.
레코드판매 폼이 나오게 설정을 하고, 현재 날짜부터 5일 전까지의 날짜가 표시되도록 프로시저까지 유트브를 보며 똑같이 작성한 후 '보기microsoft excel 키를 눌러 액셀창으로 들어가려 했는데 이렇게 뜹니다.왜 이런지 궁금합니다
안녕하세요.
화면의 **‘424 런타임 오류: 개체가 필요합니다.’**는 레코드판매.Show 자체보다는, 폼이 열리면서 자동 실행되는 UserForm_Initialize 프로시저 안에서 개체를 잘못 참조했을 가능성이 큽니다.
화면을 보면 레코드판매 폼 자체는 프로젝트에 존재하므로 다음 코드는 정상입니다.
Private Sub cmd레코드판매_Click()
레코드판매.Show
End Sub그리고 초기화 코드는 보통 다음과 같이 작성합니다.
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 0 To 5
cmb판매일자.AddItem Date - i
Next i
End Sub이렇게 하면 오늘부터 5일 전까지 총 6개의 날짜가 cmb판매일자 목록에 들어갑니다.
현재 오류를 가장 정확하게 찾는 방법은 오류 창에서 **[디버그]**를 클릭하는 것입니다. 그러면 VBA가 오류가 발생한 줄을 노란색으로 표시합니다. 그 줄에서 특히 다음을 확인해 보세요.
- 콤보 상자 이름이 실제로
cmb판매일자인지 cmb판매일자.AddItem을 정확히 입력했는지- 존재하지 않는 폼이나 컨트롤 이름을 사용하지 않았는지
특히 폼에 있는 콤보 상자의 (Name) 속성이 cmb판매일자와 한 글자라도 다르면 424 오류가 발생할 수 있습니다.
따라서 현재 화면만으로는 레코드판매.Show가 잘못됐다고 보기보다는 레코드판매 폼의 Initialize 코드에서 컨트롤을 잘못 참조한 부분을 확인하는 것이 우선입니다.
즐거운 하루 되세요.
-
관리자2026-08-24 10:41:02
안녕하세요.
화면의 **‘424 런타임 오류: 개체가 필요합니다.’**는
레코드판매.Show자체보다는, 폼이 열리면서 자동 실행되는UserForm_Initialize프로시저 안에서 개체를 잘못 참조했을 가능성이 큽니다.화면을 보면
레코드판매폼 자체는 프로젝트에 존재하므로 다음 코드는 정상입니다.Private Sub cmd레코드판매_Click() 레코드판매.Show End Sub그리고 초기화 코드는 보통 다음과 같이 작성합니다.
Private Sub UserForm_Initialize() Dim i As Integer For i = 0 To 5 cmb판매일자.AddItem Date - i Next i End Sub이렇게 하면 오늘부터 5일 전까지 총 6개의 날짜가
cmb판매일자목록에 들어갑니다.현재 오류를 가장 정확하게 찾는 방법은 오류 창에서 **[디버그]**를 클릭하는 것입니다. 그러면 VBA가 오류가 발생한 줄을 노란색으로 표시합니다. 그 줄에서 특히 다음을 확인해 보세요.
- 콤보 상자 이름이 실제로
cmb판매일자인지 cmb판매일자.AddItem을 정확히 입력했는지- 존재하지 않는 폼이나 컨트롤 이름을 사용하지 않았는지
특히 폼에 있는 콤보 상자의
(Name)속성이cmb판매일자와 한 글자라도 다르면 424 오류가 발생할 수 있습니다.따라서 현재 화면만으로는
레코드판매.Show가 잘못됐다고 보기보다는레코드판매폼의 Initialize 코드에서 컨트롤을 잘못 참조한 부분을 확인하는 것이 우선입니다.즐거운 하루 되세요.
- 콤보 상자 이름이 실제로