Почему с помощью DirectCast присваивается объекты Excel
Я борюсь с пониманием следующего кода
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 ответ
xlworkbook.Worksheets()
метод возвращает Excel.Sheets
коллекция. Коллекции (обычно) возвращают предметы типа Object
и как таковые, они должны быть приведены к типу, который вы ожидаете.
Для xlworkbook = DirectCast(xlApp.ActiveWorkbook, Excel.Workbook)
Похоже, это DirectCast
может не понадобиться, если xlApp не был создан без ссылки с использованием CreateObject("Excel.Application")
, который бы создал объект вместо.