2009-11-26 2 views
8

असल में मुझे किसी अन्य कार्यपुस्तिका से कुछ उचित आंकड़े इकट्ठा करने की आवश्यकता है (जिसे उपयोगकर्ताफॉर्म द्वारा पाया और खोला जा सकता है, इसलिए स्थान और नाम परिवर्तनीय हैं)। मुझे इसके लिए वीबीए का उपयोग करने की आवश्यकता है क्योंकि मुझे इस डेटा के साथ एक चार्ट को पॉप्युलेट करने की भी आवश्यकता है। मैं इसे करने के लिए अन्य कार्यपुस्तिका को खोलना नहीं चाहता, लेकिन अगर यह बहुत आसान है तो यह ठीक है।मैं वीबीए में किसी अन्य (खुली या बंद) कार्यपुस्तिका का संदर्भ कैसे ले सकता हूं, और मान वापस खींच सकता हूं? - एक्सेल 2007

उपयोगकर्ताफॉर्म किया गया है और ठीक काम करता है, और मेरे पास कोड को पॉप्युलेट करने के लिए आवश्यक कोड है, हालांकि मैं अन्य कार्यपुस्तिका से डेटा वापस खींचने के लिए वीबीए नहीं प्राप्त कर सकता हूं और इसे उन चरों को असाइन कर सकता हूं जिनकी मुझे आवश्यकता है।

कोई विचार यह है कि मैं इसे करने के लिए वीबीए कैसे प्राप्त कर सकता हूं? इसकी बहुत सराहना की जाएगी।

धन्यवाद,

रोब।

उत्तर

11

यदि आप इसके भीतर डेटा तक पहुंचना चाहते हैं तो आपको फ़ाइल को एक तरफ या दूसरे में खोलना होगा। जाहिर है, एक तरह से अपने एक्सेल आवेदन उदाहरण में खोलने के लिए है, जैसे: -

(अपरीक्षित कोड)

Dim wbk As Workbook 
Set wbk = Workbooks.Open("C:\myworkbook.xls") 

' now you can manipulate the data in the workbook anyway you want, e.g. ' 

Dim x As Variant 
x = wbk.Worksheets("Sheet1").Range("A6").Value 

Call wbk.Worksheets("Sheet2").Range("A1:G100").Copy 
Call ThisWorbook.Worksheets("Target").Range("A1").PasteSpecial(xlPasteValues) 
Application.CutCopyMode = False 

' etc ' 

Call wbk.Close(False) 

इसे करने के लिए एक कनेक्शन को खोलने के लिए एक्सेल ADODB प्रदाता का उपयोग करने के लिए किया जाएगा करने के लिए एक और तरीका है फ़ाइल और उसके बाद इच्छित शीट से डेटा का चयन करने के लिए SQL का उपयोग करें, लेकिन चूंकि आप एक्सेल के भीतर से काम कर रहे हैं, इसलिए मुझे विश्वास नहीं है कि कार्यपुस्तिका को खोलने के बजाय ऐसा करने का कोई कारण नहीं है। ध्यान दें कि वर्कबुक के लिए वैकल्पिक पैरामीटर हैं। ओपन() विधि केवल कार्यपुस्तिका को पढ़ने के लिए खोलने के लिए, आदि

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