/ / सी # - कक्षा पंजीकृत नहीं है - वीबीआईडी ​​- सी #, .net, एक्सेल, वीबीए, इंटरऑप का उपयोग कर मैक्रोज़ के साथ एक्सेल स्प्रेडशीट बनाना

सी # - कक्षा पंजीकृत नहीं है - वीबीआईडी ​​- सी #, .net, एक्सेल, वीबीए, इंटरऑप का उपयोग कर मैक्रोज़ के साथ एक एक्सेल स्प्रेडशीट बनाना

वीएस -2010 का उपयोग करके, मैं वीबीआईडी ​​इंटरऑप डीएलएल का उपयोग नहीं कर सकता। क्या कोई यह देख सकता है कि क्या वे सीधे अपने पीसी-कोड पर पुन: पेश कर सकते हैं या नहीं http://support.microsoft.com/kb/303872

  1. सी # में Winform ऐप बनाएँ।

  2. इन 2 डीएलएल का संदर्भ लें: C:Program FilesMicrosoft Visual Studio 10.0Visual Studio Tools for OfficePIAOffice14Microsoft.Vbe.Interop.dll तथा C:Program FilesMicrosoft Visual Studio 10.0Visual Studio Tools for OfficePIAOffice14Microsoft.Office.Interop.Excel.dll

  3. Form_load में यह कोड डालें:


//Using statments
using Excel = Microsoft.Office.Interop.Excel;
using VBIDE = Microsoft.Vbe.Interop;
using System.Reflection;

Excel.Application excelApp = null;
Excel._Workbook excelWorkbook;
Excel._Worksheet excelSheet;
excelApp = new Excel.Application();
excelApp.Visible = true;
excelWorkbook = (Excel._Workbook)(excelApp.Workbooks.Add(Missing.Value));
excelSheet = (Excel._Worksheet)excelWorkbook.ActiveSheet;
VBIDE.VBComponent oModule = new VBIDE.VBComponent();  //<--BAM throws an error

घटक के लिए COM क्लास फैक्ट्री को पुनर्प्राप्त करनासीएलएसआईडी के साथ {BE39F3DA-1B13-11D0-887F-00A0C90F2744} निम्नलिखित के कारण विफल त्रुटि: 80040154 कक्षा पंजीकृत नहीं है (HRESULT से अपवाद: 0x80040154 (REGDB_E_CLASSNOTREG))।

उत्तर:

उत्तर № 1 के लिए 1

कार्य कोड:

VBIDE.VBComponent oModule;

oModule = excelWorkbook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);