programing

"워크시트 함수 클래스의 Vlookup 속성을 가져올 수 없음" 오류

iphone6s 2023. 6. 21. 22:26
반응형

"워크시트 함수 클래스의 Vlookup 속성을 가져올 수 없음" 오류

송장이 들어오는 대로 추적할 수 있는 양식을 개발하려고 합니다.양식에는 공급업체 번호를 클릭하고 선택할 수 있는 콤보 상자가 있습니다.콤보 상자에서 선택한 공급업체 번호에 따라 텍스트 상자가 자동으로 채워지기를 원합니다.지금까지 확인한 내용은 다음과 같습니다.

Private Sub ComboBox1_Change()    
    'Vlookup when ComboBox1 is filled
    Me.TextBox1.Value = Application.WorksheetFunction.VLookup( _
        Me.ComboBox1.Value, Worksheets("Sheet3").Range("Names"), 2, False)    
End Sub

워크시트 3은 정보(공급업체 번호 및 이름)를 수집하는 데 사용됩니다.

코드를 테스트하기 위해 양식으로 돌아가면 다음 오류가 발생합니다.

런타임 오류 '1004':워크시트 함수 클래스의 Vlookup 속성을 가져올 수 없습니다.

이거 어떻게 고쳐요?

아래 코드로 시도

lookup_value를 찾을 수 없을 때 오류가 발생할 수 있으므로 vlookup을 사용하는 동안 오류 처리기를 사용하는 것이 좋습니다.

Private Sub ComboBox1_Change()


    On Error Resume Next
    Ret = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, Worksheets("Sheet3").Range("Names"), 2, False)
    On Error GoTo 0

    If Ret <> "" Then MsgBox Ret


End Sub

OR

 On Error Resume Next

    Result = Application.VLookup(Me.ComboBox1.Value, Worksheets("Sheet3").Range("Names"), 2, False)

    If Result = "Error 2042" Then
        'nothing found
    ElseIf cell <> Result Then
        MsgBox cell.Value
    End If

    On Error GoTo 0

저도 같은 문제를 겪고 있었습니다.지나가는 길이Me.ComboBox1.Value의 주장으로서Vlookup함수가 문제의 원인입니다.제가 한 것은 이 값을 더블에 할당한 다음 Vlookup 기능에 넣는 것이었습니다.

Dim x As Double
x = Me.ComboBox1.Value
Me.TextBox1.Value = Application.WorksheetFunction.VLookup(x, Worksheets("Sheet3").Range("Names"), 2, False) 

또는 더 짧은 방법을 사용하여 Vlookup 함수 내의 유형을 변환할 수 있습니다.Cdbl(<Value>).

그래서 결국은.

Me.TextBox1.Value = Application.WorksheetFunction.VLookup(Cdbl(Me.ComboBox1.Value), Worksheets("Sheet3").Range("Names"), 2, False) 

이상하게 들릴지 모르지만, 그것은 저에게 효과가 있습니다.

이게 도움이 되길 바랍니다.

저는 제 프로그램에서 이 문제를 겪고 있었습니다.제가 찾고 있던 값이 제 참조표에 없는 것으로 나타났습니다.제가 참고표를 고쳤는데, 오류가 사라졌습니다.

언급URL : https://stackoverflow.com/questions/19280477/unable-to-get-the-vlookup-property-of-the-worksheetfunction-class-error

반응형