LevT
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Извращаюсь потому, что удобно пользовательский интерфейс так организовывать: говоришь юзеру, что надо выбрать диапазон на листе и назвать его определенным именем. Альтернатива - требовать от него скучного - задания числовых параметров, смысл которых для него неочевиден. А ссылку не понял, можно подробнее? Мне не из формулы, мне из кода нужно узнать границы именованного ранджа. --- И еще вопрос собственно о VBA, который я оказывается подзабыл. Был модуль Цитата: Dim m_Series As New Series Public Function GetSeries() As Series m_Series.Init2 TargetRange:=Workbooks("Пофамильно3.xls").Sheets("()Образец()").Range("A_D"), _ SourceWorkbookName:="По визитам.xls", _ SourceWorksheetName:="Визит 1", _ SourceNamedRangeName:="A_D_source" ' m_Series.Init FirstRow:=90, _ ' LastRow:=103, _ ' FirstColumnRef:="R#C56", _ ' LastColumnRef:="R#C69" ' Set GetSeries = m_Series End Function | Модуль - собственно обертка для моего класса Series, цель которой только вызвать "конструктор" с правильными параметрами. Плохо было в нем то, что одноразовый код инициализации вызывается каждый раз, когда клиентский код дергает GetSeries() Стал модуль Цитата: Dim m_Series As Series Public Function GetSeries() As Series If (m_Series Is Nothing) Then Set m_Series = New Series m_Series.Init2 ... End If Set GetSeries = m_Series End Function | Все бы хорошо, но таких модулей-оберток несколько (это я имитирую нескольких наследников от класса Series), и я хочу свести к минимуму содержащийся в них код: полиморфизьму ради, чтобы убрать из модулей-оберток повторяющийся код, классовую логику держать все-таки не в модулях, а в классах (ну и в "утилитах класса"). Это поскольку я глубоко развращен интерфейсами и shared мемберами в .NET. пытаюсь проверять m_Series на Nothing в "утилите класса": Цитата: Dim m_Series As Series Public Function GetSeries() As Series Utils.Init3 (m_Series) | но так не получается, пишет рантайм еррор 91 object variable not set Как бы это поизящнее сделать в VBA? | Всего записей: 17126 | Зарегистр. 14-10-2001 | Отправлено: 15:50 15-03-2007 | Исправлено: LevT, 16:24 15-03-2007 |
|