|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
24.01.2023, 14:02 | #1 | |
Как сделать функцию для вывода матрицы на лист Excel?
Регистрация: 14.12.2008
Сообщений: 1,079
|
||
Просмотров: 1566
|
|
||||
Регистрация: 10.08.2013
Сообщений: 11,040
|
а зачем формула массива? Собираете в массиве типа Variant размерностью (1 To 3, 1 to 3) значения и потом одним присваиванием диапазону выводите на лист
----- добавлено через ~10 мин. ----- типа такого Код:
Последний раз редактировалось Сергей812, 24.01.2023 в 14:33. |
|||
|
||||
Регистрация: 18.01.2021
Сообщений: 404
|
На мой взгляд, тема должна быть перемещена в раздел "функции".
И вообще, Excel достоен иметь самостоятельный раздел на этом форуме. ----- добавлено через ~6 мин. ----- как по мне, а "матрица" это один объект, а не набор из девяти... так что... перебирать элементы через For ... некузяво как то ----- добавлено через ~2 ч. ----- Миша, глянте вот это https://excelpedia.ru/makrosi-v-excel/massivi-v-vba Должно породить новые идеи по работе с матрицами. Имею ввиду разделы:"For Each" и "Чтение из диапазона ячеек в массив". и еще всякое Последний раз редактировалось Петр-и-Алекс, 24.01.2023 в 14:48. |
|||
|
||||
Регистрация: 14.09.2020
Санкт-Петербург
Сообщений: 333
|
Потому что у вас в аргументах всех ячеек две единицы, в каждой ячейке и отрабатывается строчка Матрица = dM(1, 1)
По факту формула массива пишется не так, первый аргумент должен содержать диапазон всех Х, второй - диапазон со всеми Y. А ваш код заточен под обработку одной пары индексов: Function Матрица(ix As Integer, jy As Integer) As Variant Если формулу вводить не как формулу массива, и протянуть аргументы как положено - все работает. ... по причине банальной опечатки - должно быть "Матрица0()" со скобками как и у любой другой функции. Если поставить скобки - в актуальном офисе все прекрасно работает (но тут оговорка, что формулы массива в 2021 версии слегка допилили до ума, тестировал на нем). ----- добавлено через ~8 мин. ----- С таким раскладом проще вбить как формулу массива ={1;2;3:4;5;6:7;8;9} и будет ровно нужный результат. Если нужно менять цыферки - значит VBA функция, которая генерирует такую строку. |
|||
|
||||
Регистрация: 14.12.2008
Сообщений: 1,079
|
Спасибо Dinoxromniy Вам большое! Все заработало. Теперь без труда можно выводить матрицы из VBA на лист Excel.
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка ПОС, искусство проектирования | Tyhig | Технология и организация строительства | 117 | 25.11.2021 17:38 |
как сделать твердотельную модель и сделать ее чертеж, потом перенести в солидворкс | denya43 | AutoCAD | 5 | 24.12.2012 18:42 |
Excel 2003: Можно ли сделать ссылку на листы в книге. | Astartes | Прочее. Программное обеспечение | 4 | 12.07.2012 13:42 |
Как сделать окно Autocad активным при запуске из VBA Excel? | AlexV | Программирование | 1 | 20.08.2009 12:40 |
Проблема вставки диаграмм в ACAD 2009 из Excel 2007 | ST2 | AutoCAD | 1 | 26.05.2009 01:30 |