पहली बार पोस्टर, इसलिए यदि कोई स्वरूपण है, या दिशानिर्देश मैं पालन करने में असफल रहा, तो कृपया मुझे बताएं ताकि मैं इसे ठीक कर सकूं।वीबीए त्रुटि 1004 - रेंज क्लास का चयन विधि
इसलिए मैं मूल रूप से एक्सेल फ़ाइल की फ़ाइल निर्देशिका के लिए उपयोगकर्ता से पूछ रहा हूं, फिर मैं कुछ चर सेट करता हूं (मूल रूप से प्रोजेक्ट वैरिएबल के रूप में सार्वजनिक रूप से सेट किया जाता है, क्योंकि इनका उपयोग किया जा रहा था और अन्य स्थानों में बदला गया था)। मैंने इन चरों को कुछ भी सेट करने के लिए लाइन भी जोड़ दी हैं (बस अगर मुझे नहीं लगता कि इससे कोई फर्क नहीं पड़ता)। मैं फिर इन चर को एक्सेल फ़ाइल, कार्यपुस्तिका, और चादरों में सेट करता हूं जिन्हें मैं एक्सेस करना चाहता हूं।
Dim filepath as String
filePath = CStr(fileDialog) 'ask file dir, set to string
Dim sourceXL As Variant 'these three were orig project variables
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant
Set sourceXL = Nothing 'set to nothing in case...?
Set sourceBook = Nothing
Set sourceSheet = Nothing
Set sourceSheetSum = Nothing
Set sourceXL = Excel.Application 'set to the paths needed
Set sourceBook = sourceXL.Workbooks.Open(filePath)
Set sourceSheet = sourceBook.Sheets("Measurements")
Set sourceSheetSum = sourceBook.Sheets("Analysis Summary")
Dim measName As Variant 'create variable to access later
Dim partName As Variant
sourceSheetSum.Range("C3").Select 'THIS IS THE PROBLEM LINE
measName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value
sourceSheetSum.Range("D3").Select
partName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value
तो मैं दो अलग-अलग शीट चर 'sourceSheets' और 'sourceSheetsSum' बनाया, कोड काम करता है अगर मैं 'sourceSheets' का उपयोग, लेकिन त्रुटि 1004 होती है, तो मैं 'sourceSheetsSum' का उपयोग करें। मैंने किसी भी कारण से 'स्रोतशीटसम' ओवरराइड कर रहे थे, तो वैरिएबल 'स्रोतशीट' के साथ कोड को पूरी तरह से हटा दिया है।
मुझे पूरा भरोसा है कि एक्सेल कार्यपुस्तिका और चादरें मौजूद हैं और सही तरीके से बुलाई जा रही हैं, क्योंकि मैंने कार्यपुस्तिका में सभी चादरों के माध्यम से लूप को कोड के त्वरित कोड और नीचे दिखाए गए नामों को आउटपुट किया है।
For j = 1 To sourceBook.Sheets.Count
Debug.Print (Sheets(j).name)
Next j
माप की डिबग आउटपुट के साथ
विश्लेषण सारांश
विश्लेषण सेटिंग
तो, किसी को भी किसी भी विचार क्या इस त्रुटि का अर्थ हो सकता है, या कैसे करता है मैं कर सकते हैं संभवतः त्रुटि के बारे में और जानने के बारे में अधिक जानकारी प्राप्त करें?
संपादित करें: इसलिए मैंने शीट नामों की सूची में थोड़ा सा जोड़ने का फैसला किया, यह सुनिश्चित नहीं है कि इससे मदद मिलेगी या नहीं।
For j = 1 To sourceBook.Sheets.Count
listSheet(j) = Sheets(j).name
Next j
Debug.Print (listSheet(2))
Set sourceSheetSum = sourceBook.Sheets(listSheet(2))
डिबग प्रिंट विश्लेषण सारांश है, इसलिए मुझे पता है कि चादर कार्यपुस्तिका में मौजूद है, और वहाँ के नाम में 'लिखने में गलती' के साथ किसी भी मुद्दे नहीं होना चाहिए।
कोड अभी भी एक ही लाइन में एक ही त्रुटि है।
deusxmach1na: मुझे लगता है कि तुम मुझे
Dim sourceXL As Variant
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant
Set sourceSheet = sourceBook.Sheets("Measurements")
बदलने के लिए करने के लिए
Dim sourceXL As Excel.Application
Dim sourceBook As Excel.Workbook
Dim sourceSheet As Worksheet
Dim sourceSheetSum As Worksheet
Set sourceSheet = sourceBook.Worksheets("Measurements")
लेकिन इस त्रुटि नहीं बदलता है चाहता था, मुझे याद है कि मैं इसे के समान था, और तब से इसे बदल मैंने पढ़ा है कि संस्करण कैच की तरह है, वास्तव में यह वास्तव में ठोस नहीं है।
मैं आपकी चादरें विशेष रूप से वर्कशीट्स के रूप में मंद कर दूंगा और देखें कि क्या होता है। 'वर्कशीट के रूप में मंद स्रोतशीटसम' असल में, आप सब कुछ अधिक विशिष्टता के साथ मंद करना चाहते हैं। – deusxmach1na