【问题标题】:VB.Net Interop Excel Com ExceptionVB.Net 互操作 Excel Com 异常
【发布时间】:2015-08-03 04:47:19
【问题描述】:

到目前为止,这段代码已经完美运行了一段时间,

它抛出异常:

System.InvalidCastException:无法转换类型的 COM 对象 'System.__ComObject' 到类类型 'Microsoft.Office.Interop.Excel.WorksheetClass'

Dim ds_allJobs As DataSet = DBHandling.searchJob("", "", "all open jobs")
Dim xlApp = New Microsoft.Office.Interop.Excel.Application

xlApp.Visible = False
xlApp.ScreenUpdating = False

Dim xlWorkbook = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet)
Dim xlWorksheet = New Microsoft.Office.Interop.Excel.Worksheet

xlWorksheet = xlWorkbook.ActiveSheet 'IT FAILS HERE
xlWorksheet.Name = "Open Jobs"    

有什么建议吗?

【问题讨论】:

  • 问题是否出现在不同的机器上?不同版本的Excel错误是一样的吗?您是否需要使用特定版本的 Excel?
  • 异常似乎与代码不匹配。发布的代码很糟糕,您不能使用New 运算符来创建工作表。使用As 而不是New
  • 问题是我将设置设置为 .Net 3.0.. thx 伙计们

标签: vb.net excel com interop


【解决方案1】:

最好指定对象的类型(例如exWorkbook As Excel.Workbook

这是制作新工作表的一种方法:

'create a new excel application (window)
Dim exApp As New Excel.Application
'add a workbook to it, and take a look at the first worksheet
Dim exWorkbook As Excel.Workbook = exApp.Application.Workbooks.Add()
'create a new worksheet
Dim exWorksheet As Excel.Worksheet
'add this worksheet to the current applicatoin
exWorksheet = CType(exApp.Worksheets.Add(), Excel.Worksheet)

这是否回答了您的问题?最后一行是将对象转换为类型工作表。

【讨论】:

    猜你喜欢
    • 2013-03-04
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多