मैं एक वीबीए नौसिखिया हूं, और मैं एक ऐसा फ़ंक्शन लिखने की कोशिश कर रहा हूं जिसे मैं Excel कक्ष से कॉल कर सकता हूं, जो बंद की गई कार्यपुस्तिका खोल सकता है, सेल मान देख सकता है, और इसे वापस कर सकता है।एक्सेल सेल से वीबीए फ़ंक्शन को कैसे कॉल करें?
अब तक मैं जानता हूँ कि कैसे इस तरह एक मैक्रो लिखने के लिए:
Sub OpenWorkbook()
Dim path As String
path = "C:\Users\UserName\Desktop\TestSample.xlsx"
Dim currentWb As Workbook
Set currentWb = ThisWorkbook
currentWb.Sheets("Sheet1").Range("A1") = OpenWorkbookToPullData(path, "B2")
End Sub
Function OpenWorkbookToPullData(path, cell)
Dim openWb As Workbook
Set openWb = Workbooks.Open(path, , True)
Dim openWs As Worksheet
Set openWs = openWb.Sheets("Sheet1")
OpenWorkbookToPullData = openWs.Range(cell)
openWb.Close (False)
End Function
मैक्रो OpenWorkbook() बिल्कुल ठीक चलाता है, लेकिन जब मैं एक एक्सेल सेल से सीधे OpenWorkbookToPullData (...) कॉल करने के लिए कोशिश कर रहा हूँ , यह काम नहीं करता है। कथन:
Set openWb = Workbooks.Open(path, , True)
कुछ भी नहीं देता है।
क्या कोई जानता है कि इसे एक वर्किंग वीबीए फ़ंक्शन में कैसे चालू किया जाए जिसे एक्सेल सेल से बुलाया जा सके?
http://www.wikihow.com/Create-a- उपयोगकर्ता- परिभाषित- समारोह- में- माइक्रोसॉफ्ट- एक्सेल रुचि का हो सकता है। – pnuts
सहायता के लिए धन्यवाद। @ पनट्स मेरी समस्या हालांकि सामान्य रूप से वीबीए फ़ंक्शन लिखना नहीं है, लेकिन अधिक विशेष रूप से यहां। OpenWorkbookToPullData (...) को कॉल किया जाता है और मैं कदम उठा सकता हूं। लेकिन समस्या उस लाइन पर है जहां वर्कबुक। ओपन (...) निष्पादित किया गया है, यह कुछ भी नहीं है। उप OpenWorkbook(), जो OpenWorkbookToPullData (...) को कॉल करता है, ठीक काम करता है। – user780069
धन्यवाद @ पोर्टलैंडरनर हालांकि, यह कार्य स्वयं इस अर्थ में "काम करता है" कि मैक्रो सब ओपनवर्क्सबुक() ठीक काम करता है। समस्या वास्तव में वाक्यविन्यास नहीं है। समस्या यह है कि, यदि आप एक्सेल सेल से OpenWorkbookToPullData (...) को कॉल करते हैं, तो लाइन वर्कबुक। ओपन (...) कुछ भी नहीं देता है। अगर इसे सबराउटिन से बुलाया जाता है, तो यह ठीक काम करता है। – user780069