Является ли тип .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