문제

저는 Visual Basic 6.0으로 작성되었으며 다음과 같은 여러 OLE 컨트롤을 사용하는 응용 프로그램을 유지 관리하고 있습니다. Excel.Sheet.8 클래스 객체.여러 사용자가 Excel 개체를 조작하려고 시도하는 코드 지점에 도달하면 다음 오류가 발생합니다.

런타임 오류 '91':개체 변수 또는 With 블록 변수가 설정되지 않았습니다.

다음은 이 오류를 발생시키는 코드의 예입니다.문제가 발생한 곳은 다음과 같습니다.

Set oExcel = oleXl.object

이 문제가 발생하는 코드 지점은 다음과 같습니다.

Private Sub Form_Load()
    Dim i As Integer
    Dim j As Integer
    Dim sTempStringA As String
    Dim sTempStringB As String

    'Set up excel sheet
    centerform Me

    Set oOutGrid = oleXlOutput.object
...


Private Sub Form_Load()

centerform Me
Set oOtherFx = oleXlFx.object
...

Private Sub Form_Load()
Dim iRet As Integer
Dim i As Integer

On Error GoTo Err_Handler

centerform Me

Call InitArray

Me.Caption = "TJUJ | Version " & version & " | Enter Custom Fx"
Set oBook = oleExcel.object
...

이 코드 줄에서 이 오류가 생성되는 특정 상황이나 환경이 있습니까? 아니면 코드의 이 지점에서 개체에 항상 액세스할 수 있도록 보장할 수 있는 방법이 있습니까?

오류는 가끔 발생하며 개발자 컴퓨터에서는 전혀 재현할 수 없습니다.또한 이 문제가 발생하는 컴퓨터에 액세스할 수 없지만 EXCEL.EXE 프로세스 인스턴스가 실행 중일 때 발생하는 것 같습니다.

도움이 되었습니까?

해결책

런타임 오류 91이 발생하면 명령문 어딘가에 초기화되지 않은 개체가 있을 수 있습니다.즉, 값이 Nothing인 변수/객체의 속성이나 메서드를 사용하려고 합니다.

귀하의 예에서 oleXl, oleXlFx 및 oleExcel은 아마도 Nothing일 것입니다.따라서 .object 속성을 참조하면 RTE가 트리거됩니다.

코드 어딘가에서 이러한 변수는 무언가로 초기화되어야 합니다.다음과 같은 진술을 찾으십시오. Set oleXl = CreateObject("Excel.Application") 또는 Set oleXl = New Excel.Application

한 가지 제안;실제로 해당 OLE 개체를 초기화하는 문을 찾으면 오류 처리가 어떻게 코딩되었는지 확인하세요.다음과 같은 내용이 표시되는 경우:

On Error Resume Next
Set oleXl = CreateObject(...

개체가 인스턴스화되었는지 확인하는 테스트를 추가합니다.

On Error Resume Next
Set oleXl = CreateObject(...
If oleXl Is Nothing Then
   MsgBox "Hey, my object is Nothing!"
End If

다른 팁

Microsoft는 우리가 수정할 수 있다고 제안합니다 오류 91 새로운 레지스트리 키를 만들어 새 키를 만들려면 아래 단계를 따르십시오.

  • Windows 시작 메뉴를 클릭하십시오
  • 유형 Regedit 검색 상자에
  • 엔터 키를 치시오
  • 레지스트리에서 다음 항목을 찾으십시오. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Transaction Server
  • 이제 트랜잭션 서버를 선택하고 마우스 오른쪽 버튼을 클릭하십시오.
  • 새로 선택한 다음 키를 선택하십시오
  • 키를 다음과 같이 지정하십시오 Debug
  • 디버그 키를 마우스 오른쪽 버튼으로 클릭하고 새로 선택하십시오
  • 이제 키를 선택하고 키의 이름을 이름으로 지정하십시오 RunWithoutContext

ref : http://backspacetab.com/error-91/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top