2013-10-09 4 views
11

मैं इनवॉइस को ट्रैक करने के लिए एक फॉर्म विकसित करने की कोशिश कर रहा हूं। फॉर्म में एक combobox होगा जहां मैं क्लिक कर सकता हूं और एक विक्रेता नंबर का चयन कर सकता हूं। मैं चाहता हूं कि combbox से चयनित विक्रेता संख्या के आधार पर टेक्स्टबॉक्स स्वचालित रूप से भर जाए। यहाँ मैं अब तक है:"वर्कशीट फ़ंक्शन क्लास की 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 जहाँ से जानकारी तैयार की जा रही है (विक्रेता नंबर और नाम) है।

जब मैं फार्म के लिए वापस जाने के लिए कोड का परीक्षण करने के लिए, मैं निम्नलिखित त्रुटि मिलती है:

Run-time error '1004': Unable to get the VLookup property of the WorksheetFunction class

मैं इसे ठीक कैसे करूँ?

+4

यदि VLOOKUP() विफल रहता है (कोई मिलान नहीं मिल सकता है), तो आपको यह त्रुटि मिल जाएगी। –

उत्तर

11

कोड

मैं जबकि VLOOKUP का उपयोग कर त्रुटि हैंडलर उपयोग करने के लिए क्योंकि त्रुटि हो सकता है जब lookup_value नहीं पाया जाता है की सिफारिश करेंगे नीचे का प्रयास करें।

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 

या

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 
2

मैं एक ही समस्या हो रही थी। ऐसा लगता है कि Me.ComboBox1.ValueVlookup फ़ंक्शन के लिए तर्क के रूप में इस समस्या का कारण बन रहा है। मैंने जो किया वह इस मान को डबल पर असाइन किया गया था और फिर इसे Vlookup फ़ंक्शन में डाल दिया गया था।

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

या, एक छोटी विधि के लिए, तो आप सिर्फ प्रकार Cdbl(<Value>) का उपयोग कर VLOOKUP समारोह के भीतर बदल सकते हैं।

तो यह जा रहा है

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

अजीब यह लग सकता है के रूप में खत्म होता है, यह मेरे लिए काम करता है।

उम्मीद है कि इससे मदद मिलती है।

2

मुझे बस अपने स्वयं के कार्यक्रम के साथ यह समस्या थी। मैंने यह पता चला कि जिस मूल्य को मैं खोज रहा था वह मेरी संदर्भ तालिका में नहीं था। मैंने अपनी संदर्भ तालिका तय की, और फिर त्रुटि चली गई।

संबंधित मुद्दे

 संबंधित मुद्दे