몇 주 전에 완벽하게 작동하는 일부 VBA 코드가 있지만 이제 오류가 발생합니다. Word에서 실행되는 코드는 Excel 파일을 여는 데 사용됩니다. 내가 얻는 특정 오류는 Activate 메서드와 관련이 있습니다.VBA : 활성화 메서드를 찾을 수 없습니다.
Sub Populate()
Dim eApp As Excel.Application
Dim eWB As Excel.Workbook
Dim eSheet As Excel.Worksheet
On Error Resume Next
Set eApp = GetObject(, "Excel.Application")
If Err Then
ExcelWasNotRunning = True
Set eApp = New Excel.Application
End If
'Open Workbook
WorkbookName = "(Excel file location)"
eApp.Visible = True
eApp.Activate
Set eWB = eApp.Workbooks.Open(WorkbookName)
eWB.Activate
(etc.)
저는 VBA 초보자이므로 위의 글을 쓰는 것이 더 좋습니다. 마지막 줄인 eWB.Activate - 컴파일 오류가 발생합니다. "메서드 또는 데이터 멤버를 찾을 수 없습니다." 다시 말하지만, 지난 달에 일하고 있었고 지금은 작동하지 않습니다. 이 코드가 불법이되는 Office 2016에서 변경된 것이 있습니까?
나는 주위를 둘러 보았고 해결 방법이 있다고 생각하지만, 나중에 참조하기 위해 왜 충돌 하는지를 알고 싶습니다. 감사.
편집 :
는 [참조]가 (http://stackoverflow.com/documentation/excel-vba/777/getting-started-with -excel-vba/6489/a-new-object-library-reference)를 Excel 16.0에 추가 하시겠습니까? 코드에 어떤 문제도 볼 수는 없지만,'.Open'이 그것을 활성화하기 때문에'.Activate '가 필요하지 않습니다. – Slai
Excel 인스턴스의 @AndrewKilmer 활성화는 VBA/Excel이 아닌 운영 체제에 의해 제어되지만 가장 쉬운 방법은 해당 인스턴스에서 열려있는 통합 문서를 활성화하는 것이며 해당 Excel 응용 프로그램 인스턴스가 자동으로 활성화됩니다. – Ibo
일반적으로 통합 문서를 열 때이 통합 문서는 ActiveWorkbook이므로 활성화 할 필요가 없습니다. 또한 WorkbookName을 열기 전에'On Error GoTo 0'을 넣어서 적절한 에러를 볼 수 있습니다. – PatricK