我正在使用"Microsoft.Office.Interop"库创建一个excel文件。拥有office 365并将此dll导入到我的vb proyect中:"C:\Program (X86)\MicrosoftVisualStudio10.0\ for Office\PIA**Office12\Microsoft.Office.Interop.Excel.dll**“
所以,我犯了一个错误:
'Microsoft.Office.Interop.Excel.ApplicationClass‘类型的COM对象不能转换为接口类型'Microsoft.Office.Interop.Excel._Application'.操作错误发生,因为IID‘{000208D5-0000-C000-000000000046}’的接口的COM组件的QueryInterface调用生成了以下错误:IID“找不到”项。( HRESULT: 0x8002802B (TYPE_E_ELEMENTNOTFOUND)除外)。
--这是我使用库的代码:
Imports Microsoft.Office.Interop
Public Class Fexcel
Public Sub importarExcel()
Dim app As Excel.Application
Dim libro As Excel._Workbook
Dim hoja As Excel._Worksheet
app = New Excel.Application
libro = app.Workbooks.Add
hoja = app.Worksheets(1)
Dim direccion As String
End Sub
End Class
这一行的错误是“导致”的:libro = app.Workbooks.Add
我放弃了对"Office12\Microsoft.Office.Interop.Excel.dll“的引用,并添加了以下内容:”C:\Program(X86)\MicrosoftVisualStudio10.0\ Visual for Office12\Microsoft.Office.Interop.Excel.dll(更改是office14文件夹)和它没有工作**。
我做了一个新的proyect,并将相同的代码添加到"Office14\Microsoft.Office.Interop.Excel.dll“和.它成功了。这里是这个新proyect的代码:
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim app As Excel.Application
Dim libro As Excel._Workbook
Dim hoja As Excel._Worksheet
app = New Excel.Application
libro = app.Workbooks.Add
hoja = app.Worksheets(1)
Dim direccion As String
End Sub
End Class
,我仍然需要修复我的主proyect的错误,我不知道为什么会这样。
我查找了错误,他们说要做的事情是查找错误代码的注册表,看看是否安装了另一个版本的office,我没有其他版本的office。(我不想重新安装msOffice,因为我不认为它会起作用,告诉我如果我错了)
我认为这个错误是由我的主要观点引起的;在重要的情况下,我不认为这是visual 2010或office或注册表的问题,但是如果您认为您有解决方案,请告诉我。
编辑:,我已经激活了我的proyect的严格模式(并且有243个错误)。现在,我已经初始化了Excel对象应该如何实现。
`
Dim app As Excel.Application
Dim libro As Excel.Worksheet
Dim hojaCompr As Excel.Worksheet
Dim hojaVent As Excel.Worksheet
Dim hojaGen As Excel.Worksheet
app = New Excel.Application
Dim direccion As String
libro = CType(app.Workbooks.Add, Excel.Workbook)
错误是由于试图在没有CType()函数的情况下定义工作簿对象以将Excel.applicationClass类型转换为Excel.Workbook类型引起的。
谢谢你的帮助!!
发布于 2020-11-27 07:53:30
我修好了。我将将要使用的对象定义为"Object
",更改了"app = New Excel.Application
“,仅此而已。
Imports Microsoft.Office.Interop
Dim app As Object
Dim libro As Object
Dim hoja As Object
'Start a new workbook in Excel
app = CreateObject("Excel.Application")
libro = app.Workbooks.Add
hoja = libro.Worksheets(1)
libro.SaveAs("C:\Users\Ricardo\Documents\book.xlsx")' I will use an getSaveFilename, not this
app.Quit()
谢谢你的帮助
https://stackoverflow.com/questions/65030581
复制相似问题