Передача объекта диапазона из VBA в .NET вызывает «Ошибка выполнения 91» - PullRequest
2 голосов
/ 02 октября 2019

Является ли тип .NET: Microsoft.Office.Interop.Excel.Range того же типа, что и VBA: excel.range?

Передача его из VBA в .NET не работает.

Это вызывает:

Ошибка времени выполнения '91': переменная объекта или переменная блока не установлена.

Код .NET (в данном случае VB.NET):

Imports Microsoft.Office.Interop.Excel

Public Class clsDotNetClass

private mRangeObject as Excel.Range

Public Property FirstProperty As Excel.Range

        Get
            Return mRangeObject

        End Get

        Set(value As Excel.Range)

            mRangeObject = value

        End Set

    End Property

End class

VBA:

Public sub DoesNotWork ()

Dim wkbObject As Workbook
Dim shtObject As Worksheet
Dim rngObject As Range

Set wkbObject = ThisWorkbook
Set shtObject = wkbObject.Worksheets("Sheet1")
Set rngObject = shtObject.Range("A1:B2")

Dim clsAttempt1 as new clsDotNetClass 

With clsAttempt1

    .FirstProperty = rngObject

End With

End sub

В противном случае COM-соединение работает нормально.

Буду признателен за любые идеи,

Hein

...