다음을 통해 공유


개체 변수 또는 With 블록 변수가 설정되지 않음

잘못된 개체 변수를 참조하고 있습니다. 이 오류는 다음과 같은 여러 가지 이유로 발생할 수 있습니다.

  • 형식을 지정하지 않고 변수를 선언했습니다. 형식을 지정하지 않고 변수를 선언하면 기본적으로 형식 Object이 지정됩니다.

    예를 들어 선언된 변수는 선언된 Dim xDim x As StringString변수 형식 Object; 이 형식입니다.

    팁 (조언)

    이 문은 Option Strict 형식을 생성하는 암시적 입력을 Object 허용하지 않습니다. 형식을 생략하면 컴파일 시간 오류가 발생합니다. Option Strict 문을 참조하세요.

  • 로 설정된 개체를 참조하려고 합니다 Nothing.

  • 올바르게 선언되지 않은 배열 변수의 요소에 액세스하려고 합니다.

    예를 들어 선언 products() As String 된 배열은 배열의 products(3) = "Widget"요소를 참조하려고 하면 오류를 트리거합니다. 배열에는 요소가 없으며 개체로 처리됩니다.

  • 블록이 초기화되기 전에 블록 내 With...End With 의 코드에 액세스하려고 합니다. With...End With 문 진입점을 실행하여 With 블록을 초기화해야 합니다.

비고

이전 버전의 Visual Basic 또는 VBA에서 이 오류는 키워드(x = "name"대신Set x = "name")를 사용하지 Set 않고 변수에 값을 할당하여 트리거되었습니다. Visual Set Basic .Net에서는 키워드가 더 이상 유효하지 않습니다.

이 오류를 해결하려면

  1. On 파일의 시작 부분에 다음 코드를 추가하여 설정합니다Option Strict.

    Option Strict On
    

    프로젝트를 실행하면 형식 없이 지정된 변수에 대한 컴파일러 오류가 오류 목록에 표시됩니다.

  2. 사용하도록 설정 Option Strict하지 않으려면 코드에서 형식 없이 지정된 변수(Dim x 대신 Dim x As String)를 검색하고 원하는 형식을 선언에 추가합니다.

  3. 로 설정된 개체 변수를 참조하지 않는지 확인합니다 Nothing. 코드에서 키워드 Nothing를 검색하고 개체가 참조될 때까지 설정 Nothing 되지 않도록 코드를 수정합니다.

  4. 배열 변수에 액세스하기 전에 모든 배열 변수의 크기를 조정해야 합니다. 먼저 배열(Dim x(5) As String 대신 Dim x() As String)을 만들 때 차원을 할당하거나 키워드를 사용하여 ReDim 배열에 처음 액세스하기 전에 배열의 차원을 설정할 수 있습니다.

  5. 문 진입점을 실행하여 블록이 With 초기화되었는지 확인 With 합니다.

참고하십시오