मेरी इंटर्नशिप के लिए मुझे कुछ एक्सेल यूजरफॉर्म और वीबीए मैक्रोज़ करना है। मेरे पास UserForm के अंदर एक Private Sub है और मुझे वर्कशीट को पैरामीटर के रूप में पास करने की आवश्यकता है। लेकिन मुझे हमेशा मिलता है

"निष्पादन त्रुटि 438"

जब Sub कहा जाता है।

जो मुझे परेशान करता है वह यह है कि FirstBlankColumn काम करता है लेकिन FillAllBox नहीं करता है।

मैंने कोशिश की:

-फिलऑलबॉक्स को सार्वजनिक और न तो निजी और न ही सार्वजनिक

-फिलऑलबॉक्स को एक फंक्शन में बदलना

-जिस तरह से मैं वर्कशीट पास करता हूं (यानी: Set ws = Worksheets("ExportedData") फिर पासिंग ws)

'''vba
Private Function FirstBlankColumn(ws As Worksheet) As Long
   'Yadda yadda does some stuff
   '
   'returns the number of the first blank column
End Function


Private Sub FillAllBox(ws As Worksheet)
    ' we never get to the FillBox calls
    FillBox UserBox, ws
    FillBox StockTransBox, ws
    FillBox SemaineBox, ws
    FillBox LocationBox, ws
    FillBox ValeurBox, ws
End Sub

Private Sub UserForm_Initialize()
    ' displays correctly the number of the first blank column
    MsgBox FirstBlankColumn(Worksheets("ExportedData"))
    ' Throws "error 438" upon call
    FillAllBox (Worksheets("ExportedData"))
End Sub
'''

लंबे समय तक मैंने शीट के नाम और स्ट्रिंग को पैरामीटर के रूप में पास करने के लिए पास किया। लेकिन मेरी शीट को पुनः प्राप्त करने के लिए प्रत्येक फ़ंक्शन/उप में शीट सूची को कॉल करने के लिए अनुकूलित नहीं किया गया है।

मैं विश्वसनीय रूप से पैरामीटर के रूप में शीट्स या वर्कशीट्स को सीधे पास करने में सक्षम होना चाहता हूं।

अग्रिम में धन्यवाद।

1
Mummoc 25 जुलाई 2019, 17:43

1 उत्तर

सबसे बढ़िया उत्तर

यह समस्या आपके कोष्ठकों (()) के उपयोग की है। उन्हें अपने कॉल से हटा दें और आपको जाने के लिए अच्छा होना चाहिए।

कोष्ठक

उप प्रक्रियाएं, अंतर्निर्मित कथन, और कुछ विधियां कोई मान नहीं लौटाती हैं, इसलिए तर्क कोष्ठक में संलग्न नहीं हैं

फ़ंक्शन प्रक्रियाएँ, अंतर्निहित फ़ंक्शंस और कुछ विधियाँ एक मान लौटाती हैं, लेकिन आप इसे अनदेखा कर सकते हैं। यदि आप वापसी मूल्य को अनदेखा करते हैं, तो कोष्ठक शामिल न करें। फ़ंक्शन को वैसे ही कॉल करें जैसे आप उप प्रक्रिया कहते हैं। कोष्ठकों को छोड़ दें, किसी भी तर्क को सूचीबद्ध करें, और किसी चर को फ़ंक्शन असाइन न करें।

 FillAllBox Worksheets("ExportedData")
4
Community 20 जून 2020, 12:12