为什么使用DirectCast分配Excel对象



我很难理解下面的代码

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

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

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

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

至于xlworkbook = DirectCast(xlApp.ActiveWorkbook, Excel.Workbook),似乎不需要这个DirectCast,除非在没有使用CreateObject("Excel.Application")引用的情况下创建xlApp,否则将创建一个对象。

最新更新