为什么使用DirectCast分配Excel对象

时间:2014-05-06 07:34:37

标签: vb.net excel-interop directcast

我对理解以下代码感到困惑

Dim _xlsSheet As Excel.Worksheet = DirectCast(xlworkbook.Worksheets(Name), Excel.Worksheet)

xlworkbook = DirectCast(xlApp.ActiveWorkbook, Excel.Workbook)

我所有关于Excel.Interop工作的例子我看到DirectCast到处都是使用的。我不明白为什么我们必须在这里使用DirectCast。如果我声明dim xlworkbook as excel.workbook使用直播而不是仅仅分配工作簿?

1 个答案:

答案 0 :(得分:1)

xlworkbook.Worksheets()方法返回Excel.Sheets个集合。集合(通常)返回Object类型的项目,因此,它们应该转换为您期望的类型。

对于xlworkbook = DirectCast(xlApp.ActiveWorkbook, Excel.Workbook),可能不需要此DirectCast,除非使用CreateObject("Excel.Application")创建xlApp而没有引用,这将创建一个对象。