Страницы: 1
RSS
Присвоить переменной значение из массива. Название массива и его элементов - меняется и определяется значением в ячейке., Добрый день.
 
Добрый день.

Имеется несколько массивов пользовательского типа (к примеру Arr_Empl( ) ) обращение к элементам происходит по Arr_Empl (i_count).FIO ,  Arr_Empl (i_count).SNILS и т.п. , другие массивы - аналогично.

Существует таблица - 2 столбца . По значению в 1м столбце происходит поиск и через offset определяется значение из 2го столбца.
К примеру, находится тот же  Arr_Empl (i_count).FIO. (т.е. определяется имя массива, к которому нужно обратиться , индекс, а также наименование его элемента).

Вопрос - можно ли теперь для некой переменной придать значение не " Arr_Empl (i_count).FIO", а значение из самого массива " Arr_Empl (i_count).FIO." ??

через my_text = array (Arr_Empl (i_count).FIO). value - не работает.

Подскажите пожалуйста.
 
Здравствуйте. Эмн... насколько я понял у вас есть пользовательский массив Arr_Empl. Он содержит элементы. К элементам можно обратиться по индексу, например Arr_Empl(i_count) - получим элемент массива под определенным индексом. Потом у этого элемента есть свойства, например FIO.
т.е. чтобы получить значение из массива можно использовать обращение  Arr_Empl(i_count).FIO.
А функция array, которую вы зачем-то применяете к ??? чему?? возвращает массив из аргументов, разделенных запятыми.
Кому решение нужно - тот пример и рисует.
 
Не совсем верно .
Массивов несколько.

Есть много документов Word. B каждом из них есть свой набор полей с ТЕГами.
Они и определяют какой им соответствует массив с данными - к примеру, массив с сотрудниками Empl() или , к примеру, организация - Comp()
В массиве также есть его элементы (не индекс, что тоже есть, естественно)
К примеру Empl(15).FIO  или  Comp(2).INN

В сопоставительной таблице через FIND находим для нашего ТЕГа (вообще не  одного, а в циклах...), МАССИВ и ЭЛЕМЕНТ которые ему соответвуют.
Надо присвоить некой переменной значение по найденному имени массива и элементу...

text = Empl(15).FIO  

Проблема в том, что после того, как найдено имя и свойство НУЖНОГО массива, нельзя их присвоить переменной.
Они воспринимаются как текст, а не как  некий объект (массив, переменная).,
Т.е. , в буквальном смысле воспринимается как                    : text = "Empl(15).FIO",,
что не позволяет извлечь данные из него.
Изменено: Vadim-2511 - 07.06.2023 10:35:56 (Уточнение вопроса)
 
Ну, ок, т.е. у вас есть некое семейство (коллекция) массивов. И вы нашли название нужного. Ну вот по названию из коллекции его достаете и присваиваете переменной. Как-то так, нет?
Кому решение нужно - тот пример и рисует.
 
Добрый день.

Переменной мне нужно присвоить не имя массива, а значение его элемента.
Название -то  массива , как раз присвоить не проблема.. После того как имя  и свойства определены, они-то и подставляются как "текст" в переменную.
А мне бы по полученному названию, индексу и свойству, "выдернуть" значение, хранимое внутри.

Уже перерыл кучу форумов, судя по всему, этого сделать нельзя.
Спасибо в любом случае за попытку понять и помочь !!!!!!!!!!!!!!!!!!
 
Цитата
Vadim-2511 написал:
судя по всему, этого сделать нельзя.
ну, да. печально, но в VBA напрочь отсутствуют средства работы с массивами

судя по всему - самое сложное в вашей задаче - это понять что за проблему вы решаете
сможете обьяснить - получите решение, не сможете - так и будете пребывать в уверенности, что сделать это нельзя.
дальнейшее переворачивание форумов - бесполезно. пока вы не сформулируете внятный запрос, вы не получите ссылку на решение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Читают тему
Наверх