Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
DjVu

Как передавать в качестве аргумента функции экземпляр пользовательского класса?

01.02.2010, 15:18. Показов 3686. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Товарищи, подскажите пожалуйста, возможно ли (и как, если возможно) на VBA (Exel 2003) реализовать следующую ситуацию:

1. Существуют два класса, созданные пользователем: Class1 и Class2

2. В Class1 существует поле, определённое как Dim Field as New Class2

Вопрос: возможно ли в Class1 создать процедуру setField(X as Class2), которая бы выполняла копирование всех полей объета X в поле Field? и как её воспользоваться на практике?

Проблема в том, что если я хочу написать
Visual Basic
1
2
3
4
Dim Y as New Class1
Dim X as New Class2
X.setName(Name)
Y.setField(X ) '<- вот на этом месте VBA вылетает...
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2010, 15:18
Ответы с готовыми решениями:

Вызов экземпляр другого класса в качестве аргумента Анонимной функции выдает ошибку PHP 7
Даны три класса - необходимо получить render /* Book record: #1 Address: 33 Market street, London, Greater London, EC4 MB5, GB ...

Использование метода класса как функции в качестве типизированного аргумента в методе класса
Использование метода класса как функции в качестве типизированного аргумента в методе класса C++: как правильно использовать метод ...

Передача массива данных пользовательского типа в качестве аргумента функции
Добрый день! массив ParamArray всегда имеет тип данных Variant В функцию передаются пользователем по 3 элемента...

2
 Аватар для Abu
1161 / 288 / 23
Регистрация: 28.09.2008
Сообщений: 553
01.02.2010, 22:09
Цитата Сообщение от DjVu Посмотреть сообщение
Вопрос: возможно ли в Class1 создать процедуру setField(X as Class2), которая бы выполняла копирование всех полей объета X в поле Field?
Да. В Class2 поля должны быть объявлены как Public.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'Class2
Public sName As String
Public IntSec As Integer
'*******************
'Class1
Private Field As New Class2
 
Sub setField(X As Class2)
MsgBox "set Field"
Field.sName = X.sName
Field.IntSec = X.IntSec
End Sub
 
Sub showField()
MsgBox "Field.sName=" & Field.sName & vbCrLf & "Field.IntSec=" & Field.IntSec, , "Now Field is"
End Sub
'*******************
'Module
Dim Y As New Class1
Dim X As New Class2
X.sName = InputBox("", "", "test")
X.IntSec = Second(Time)
Y.showField
Y.setField X
Y.showField
0
DjVu
01.02.2010, 23:41
Спасибо. Мегареспект!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.02.2010, 23:41
Помогаю со студенческими работами здесь

Как понять, что можно передавать в аннотации в качестве аргумента?
Недавно пришлось написать вот такую вот конструкцию: @Table(name=&quot;UserPattern&quot;, uniqueConstraints={ ...

Как передавать ссылку на экземпляр класса между Activity?
Если в MainActivity я создаю ссылку (SaveDataObj ) на класс и выделяю память (new SaveData()) под экземпляр класса. как этот объект...

Создание шаблона bool-функции, принимающей в качестве параметра экземпляр класса
Добрый день. Никак не получается осилить) Суть: есть классы, у которых есть поле str - массив символов. Хочу сделать...

Передача метода класса в качестве аргумента внешней функции
Столкнулся со следующей проблемой. Пусть у меня есть некая внешняя функция, которая принимает в качестве аргумента указатель на функцию...

Указатель на метод класса в качестве аргумента метода класса
Функция _createFun вызывается для создания ХХХ в основном классе. Но вот потребовалось создать ХХХ в дополнительном классе. Вопрос: как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru