워크북_워크북을 열 때 열기 하위 항목이 실행되지 않습니까?
이 프로그램은 사용자가 다른 서브를 활성화하기 위해 누를 수 있는 버튼을 생성하도록 되어 있습니다.온라인으로 검색해보니 워크북을 열 때 아래 서브가 활성화되어야 할 것 같은데, 아닌가요?
내가 뭘 잘못하고 있는 거지?
Option Explicit
Private Sub Workbook_Open()
Dim btn As Button
Dim rng As Range
With Worksheets("Sheet1")
Set rng = .Range("B2:C2")
Set btn = .Buttons.Add(rng.Left, rng.Top, rng.Width, rng.Height)
With btn
.Caption = "To begin the program, please click this button"
.AutoSize = True
.OnAction = "TableCreation1"
End With
End With
End Sub
개인 하위 워크북_Open() 서브루틴이 모듈, 양식 또는 시트 개체가 아닌 이 워크북 개체 내부에 붙여넣어져 있는지 확인합니다.
재밌는.2009년에는 vbforum 게시물에서와 같이 열 시트의 조건부 서식과의 충돌이 설명되어 있습니다.
이 버그는 여전히 엑셀에 존재하는 것으로 보이며, 그것을 방지합니다.workbook_open
해고를 면했습니다.Excel 2003 및 2007에서 이벤트를 시작하지 않고 2013년에 실행되는 워크북(구 XLS-binary 형식)이 있습니다.첫 번째 워크시트에서 조건부 서식을 모두 삭제했지만 여전히 가져올 수 없습니다.workbook_open
이전 Excel 버전에서 실행할 절차입니다.
분산 워크북에서 사용하는 해결 방법은 워크북의 로컬 변수와 두 번째 이벤트를 다음과 같이 사용하는 것입니다.
''
' private variable
Private wbOpenEventRun as Boolean
''
' procedure to be called by excel when workbook opens
Private Sub Workbook_Open()
wbOpenEventRun = true
' perform tasks
End Sub
''
' the selection change event fires usually.
' performance is not reduced
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Not wbOpenEventRun Then Workbook_Open
' perform tasks in reaction of selection change events, if required
End Sub
제가 찾은 해결책은 아래 코드를 실행하는 것이었고 "Open" 이벤트가 작동했습니다.
Sub EventRestore()
Application.EnableEvents = True
End Sub
이 게시물이 한동안 휴면 상태였던 것은 알지만, 저는 이 문제를 해결하기 위해 몇 시간 동안 고군분투했을 뿐입니다.가장 이상한 일이지만 마침내 워크시트 중 하나가 "페이지 보기"에 있다는 것을 알게 되었습니다. "정상"에 넣자마자 워크북_열기() 기능이 다시 정상적으로 작동하기 시작했습니다.매우 이상합니다 - 분명히 엑셀 버그입니다...드디어 해결해서 다행입니다...누군가에게 도움이 되길...
제 해결책은 좀 애매했고, 왜 그것이 잠재적인 해결책으로 떠올랐는지도 기억이 나지 않습니다.Workbook_Open() 매크로가 실행되지 않도록 만든 파일로, 원래 다음 단계를 통해 만들었습니다.
- 관련 폴더에서 마우스 오른쪽 단추를 클릭하고 새로 만들기를 클릭한 다음 Microsoft Excel 워크시트를 클릭합니다.
- 파일 이름을 "Workbook_1"로 지정합니다.
- 워크북_1을 열었습니다.
- 파일, 다른 이름으로 저장, 파일 형식이 Excel 매크로 지원 워크북(*.xlsm)으로 변경됨, 저장.
- 이 워크북에 중첩된 Workbook_Open()을 포함하여 VBA 코드를 작성했습니다.
어떤 이유에서든, 저는 제 문제가 파일이 표준 .xlsx로 "시작"한 것과 관련이 있는지 궁금했습니다.그래서 나는 간단하게:
- Excel(1권)에서 빈 워크북을 새로 열었습니다.
- 파일, 다른 이름으로 저장, 워크북_2 입력, 파일 형식을 Excel 매크로 지원 워크북(*.xlsm)으로 변경, 저장.
- 원본 Workbook_1에서 VBA 코드 및 구조를 복사했습니다.
원래의 Workbook_1과는 달리 새 Workbook_2는 열린 상태에서 Workbook_Open() 하위 항목을 성공적으로 실행했습니다.이 문제의 잠재적 원인은 파일의 유형 기록(즉, 매크로를 실행할 수 없는 유형인 경우)과 관련이 있을 수 있습니다.아니면 단순히 새로운 파일로 다시 시도하는 것이 이 문제를 해결한 것일 수도 있습니다.어느 쪽이든, 이것은 다른 솔루션이 그렇지 않은 모든 사람에게 효과가 있을 수 있습니다.
코드 솔루션을 통한 Nazim의 이벤트 활성화와 유사하게 다음 수정 사항을 발견했습니다.
해결책
Excel 워크북과 VBA 창을 모두 닫고 해결된 워크북을 다시 엽니다.
(위에 링크된 Nazim의 솔루션과 유사한 이벤트가 활성화되었기 때문일 수 있습니다.)
문제 경험
디버깅을 하다가 실행을 중단하고 중단하기 전에 실행 중인 코드에서 이벤트를 비활성화했습니다.처음에는 이러한 상황을 몰랐고 워크북을 닫거나 다시 연 후에도 작동하지 않았습니다.
개연성 있는 원인
...다른 Excel 워크북이나 일부 글로벌 사례에서는 다시 열린 워크북의 이벤트가 꺼졌다는 사실을 "기억"했습니다.
언급URL : https://stackoverflow.com/questions/11369762/workbook-open-sub-wont-run-when-i-open-the-workbook
'programing' 카테고리의 다른 글
Eclipse Juno에 Marketplace 플러그인 (0) | 2023.05.07 |
---|---|
Excel DataReader를 사용하여 특정 셀에서 시작하는 Excel 데이터 읽기 (0) | 2023.05.07 |
웹 개발자용 Windows Azure vs Amazon EC2 (0) | 2023.05.07 |
Postgre를 변경하려면 어떻게 해야 합니다.SQL 테이블 및 열을 고유하게 만드시겠습니까? (0) | 2023.05.07 |
파이프 - 각도 2라는 숫자에 대한 매개변수는 무엇입니까? (0) | 2023.05.07 |