|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2013, 15:56 | #1 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 2
|
Как присвоить один объект другому
Уважаемые форумчане прошу помочь по следующему вопросу:
У меня не получается присвоить один объект другому с одинаковым типом в VBA. Поясняю - Создаю модуль класса, именую его "TEST" и наполняю нижеследующим кодом: Public propertyInt As Integer Public propertyBool As Boolean Public propertyStr As String Затем создаю модуль под именем Module1 и наполняю следующим содержимым: Dim obj1 As New TEST Dim obj2 As New TEST Sub a() obj1.propertyBool = False obj1.propertyInt = 0 obj1.propertyStr = "a" obj2.propertyBool = True obj2.propertyInt = 1 obj2.propertyStr = "b" obj1 = obj2 End Sub Нажимаю F5 и запускаю процедуру a(). В результате появляется нижеследующая ошибка: Run-time error '91': Object doesn't support this property or method Если же я вместо строчки obj1 = obj2 напишу Set obj1 = obj2 то в результате получу две ссылки (obj1 и obj2) на один и тот же объект. А мне лишь нужно чтобы при операции присваивания одного объекта другому все свойства одного объекта присваивались свойствам другого объекта т.е. obj1.propertyBool = obj2.propertyBool, obj1.propertyInt = obj2.propertyInt, obj1.propertyStr = obj2.propertyStr. Подскажите как это правильно сделать в VBA? |
13.02.2013, 16:22 | #2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Если я правильно вас понял
Код:
Код:
Анализ,обработка данных Недорого
|
13.02.2013, 16:26 | #3 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Вариант №2
Код:
Код:
Анализ,обработка данных Недорого
|
13.02.2013, 17:57 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
или один раз это:
Код:
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
13.02.2013, 18:50 | #5 |
Новичок
Джуниор
Регистрация: 13.02.2013
Сообщений: 2
|
Большое спасибо Вам doober и IgorGO за примеры кода! Я воспользуюсь Вашим кодом. Просто я понадеялся что в VBA конструкция присваивания одного объекта другому может быть также лаконична как например в С++:
Код:
|
13.02.2013, 19:40 | #6 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
можно ли глобально присвоить объект переменной? | budmit | Microsoft Office Excel | 17 | 28.04.2013 00:48 |
Как сделать так, чтобы при наведении мышкой на объект, который находится под другим, этот объект выходил на первый план? | Zaza7 | HTML и CSS | 3 | 17.01.2013 10:23 |
Приклеить один блок к другому | dichman | HTML и CSS | 1 | 15.08.2011 19:47 |
Как вставить диапазоны ячеек из разных файлов в один, но так чтобы они шли один ниже другого? | Squarded | Microsoft Office Excel | 4 | 24.07.2011 19:24 |
Присвоить элементу значение текстовой строки так, чтоб строка была в два и более ряда, а не в один | alex2008ean | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 15.12.2008 05:31 |