Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 20:08   #1
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию Объединение переменных в запись

Синтаксис vba позволяет объединять несколько переменных разных типов в одну запись, под одним именем?
как например в делфи

aaa= record
a,b: integer
y:real
s:string
ar:array[1..N] of char;
end;
RISagitov вне форума Ответить с цитированием
Старый 21.05.2012, 20:45   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Массив?
Т.е. в одной переменной a() могут быть данные разных типов.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 21.05.2012, 20:56   #3
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

нет, не массив
в предложенном примере на делфи
обращение к переменным записи производится...

aaa.a:=12;
aaa.b:=323;
aaa.y:=23.234;
aaa.s:='dfdgggdfdfsdf';
aaa.ar[1]:='s';
RISagitov вне форума Ответить с цитированием
Старый 21.05.2012, 21:12   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Type aaa
    a As Integer
    b As Integer
    s As String
    arr() As String
End Type

Sub test()
    Dim var As aaa
    var.a = 5: var.b = 7
    var.s = "text"
    MsgBox var.a + var.b
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 21.05.2012, 22:14   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

И чего не массив?
Код:
Sub tt()
    Dim a(1 To 5), i&
    
    a(1) = 12
    a(2) = 323
    a(3) = 23.234
    a(4) = "dfdgggdfdfsdf"
    a(5) = "s"

    For i = 1 To 5
        MsgBox a(i)
    Next
End Sub
или так:
Код:
Sub tt()
    Dim a(1 To 5), i&
    Dim b(1 To 5)
    a(1) = 12
    a(2) = 323
    a(3) = 23.234
    a(4) = "dfdgggdfdfsdf"
    b(1) = "s"
    a(5) = b

    For i = 1 To 4
        MsgBox a(i)
    Next
    MsgBox a(5)(1)
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 21.05.2012 в 22:17.
Hugo121 вне форума Ответить с цитированием
Старый 21.05.2012, 22:29   #6
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

спасибо,
значит в vba можно творить любое безобразие))
RISagitov вне форума Ответить с цитированием
Старый 22.05.2012, 00:34   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

отличный вывод. поздравляю.
а значит это всего-на-всего что в VBA можно не обьявлять тип переменной и тогда она получит тип variant. остается только научиться грамотно этим пользоваться.
пример переменной без типа - это ячейка, Вы не считаете безобразием, что в ячейку можно записать текст, число, дату, ИСТИНУ/ЛОЖЬ?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.05.2012, 03:26   #8
RISagitov
Форумчанин
 
Регистрация: 19.05.2012
Сообщений: 237
По умолчанию

мда
это как ездить на велосипеде в стельку пьяным
RISagitov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тип запись. Объявление типа запись. Маленыч Паскаль, Turbo Pascal, PascalABC.NET 1 11.05.2012 20:42
запись любого целого числа n (n<3999) арабскими цифрами перевести в запись римскими цифрами (на языке C) qazse Помощь студентам 1 24.11.2011 12:05
Объединение nikshiyan Паскаль, Turbo Pascal, PascalABC.NET 10 26.07.2010 00:09
Объединение файлов Aleksey1989 Помощь студентам 3 25.04.2010 19:35
Объединение БД Georgios БД в Delphi 3 25.01.2009 20:18