У меня возникла проблема со свойством Get из пользовательского класса в VBA (Excel 2010). Если аргумент индекса не указан, то мое свойство Get должно возвращать ссылку (по крайней мере, это мое впечатление) на массив класса. Если задан индекс, он должен вернуть значение в данном индексе в частном массиве.
' Custom Class Properties
Private pMtbSheets() As String
'Get and Let Methods
Public Property Get MtbSheets(Optional index As Variant) As String()
If IsMissing(index) Then
ReDim MtbSheets(1 To UBound(pMtbSheets))
MtbSheets = pMtbSheets()
Else
ReDim MtbSheets(1 To 1)
MtbSheets(1) = pMtbSheets(index) '**Compiler error occures here**
End If
End Property
Спасибо за любую помощь, которую кто-либо может предложить
String array
. Вы получаете сообщение об ошибке, потому что ваше условие Else пытается вернуть одну строку. В любом случае для меня это было бы запутанным возвратом из функции, потому что мне пришлось бы проверять тип возвращаемой переменной перед ее использованием. Однако, чтобы решить вашу функцию, как написано, измените возвращаемое значение сas String
наas Variant
. - person PeterT   schedule 06.04.2016