2010-07-24 14 views
14

मैं Office 2007 का उपयोग कर रहा उत्कृष्टता सी # कोड में काम चादर समारोह। VS2010 मुद्दों इस चेतावनीमैं इस माइक्रोसॉफ्ट में अस्पष्टता को कैसे हल कर सकता हूं। ऑफिस.एक्ससेल विधि कॉल?

चेतावनी विधि 'Microsoft.Office.Interop.Excel._Worksheet.Activate()' और गैर विधि 'के बीच 3 अस्पष्टता Microsoft.Office.Interop.Excel.DocEvents_Event.Activate '। विधि समूह का उपयोग करना। डी: \ EXLANEDB01p \ dev \ पुस्तकालय \ EXCEL \ Excel.cs 531 95 EXCEL

मैं इसे कैसे हल करूं? कॉल

xSheet.Activate(); 

जहां xSheet

ref Microsoft.Office.Interop.Excel.Worksheet xSheet 

उत्तर

28

आप Activate नाम स्पष्ट करने की जरूरत के रूप में कॉल में रेफरी के रूप में पारित है। वर्कशीट इंटरफ़ेस के भीतर, Activate या तो एक पद्धति (यदि एक _Worksheet वस्तु के रूप में देखा) या एक घटना (यदि एक DocEvents_Event वस्तु के रूप में देखा है)।

कास्ट Microsoft.Office.Interop.Excel._Worksheet पहले करने के लिए अपने वस्तु तो Activate() कहते हैं।

((Microsoft.Office.Interop.Excel._Worksheet)xSheet).Activate(); 

या एक नई _Worksheet चर घोषित करने और उपयोग करने वाले अपने विधि के भीतर।

_Worksheet sheet = xSheet; 
sheet.Activate(); 

नहीं तो आप एक _Worksheet बजाय एक Worksheet के साथ-साथ सभी संबंधित घोषणाओं के लिए एक संदर्भ लेने के लिए अपने विधि घोषणा बदल सकता है।

void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet) 
{ 
    // ... 
} 

// usage: 
_Worksheet sheet = new Worksheet(); 
MyMethod(ref sheet); 
+0

धन्यवाद .. जो waringing को हल किया .. टोनी – TonyP

+0

कोई विचार यह क्यों काम करता है? बस उत्सुक। –

+5

@ संरक्षक: हमें 'सक्रिय' नाम को असंबद्ध करने की आवश्यकता है। 'Worksheet' इंटरफ़ेस के भीतर,' Activate' या तो एक पद्धति (यदि एक '_Worksheet' वस्तु के रूप में देखा) या एक घटना (यदि एक' DocEvents_Event' वस्तु के रूप में देखा है)। संकलक को यह सुनिश्चित नहीं था कि इसके बारे में क्या करना है ताकि हम (प्रोग्रामर) को यह बताने की ज़रूरत हो कि इसके साथ क्या किया जाए। इस मामले में, हमें इसे वर्कशीट के रूप में देखना चाहिए जहां नाम 'सक्रिय करें' एक विधि है। –

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