powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вывод массива из пользовательской функции на лист
4 сообщений из 4, страница 1 из 1
Вывод массива из пользовательской функции на лист
    #37532184
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function Расч(m1 As Variant, m2 As Variant, rez As Variant) As Variant
Dim mas( 1  To  100 ) As Integer
If (TypeName(rez) = "Range") And (m1.Rows.Count = m2.Rows.Count) Then
 For i =  1  To m1.Rows.Count
     mas(i) = m1.Cells(i,  1 ).Value + m2.Cells(i,  1 ).Value
 Next i
Расч = mas
Else
   If (TypeName(rez) <> "Range") Then Расч = "Ошибка 1!"
   If m1.Rows.Count <> m2.Rows.Count Then Расч = "Ошибка 2!"
End If
End Function
Когда я её вызываю в ячейке, то она вставляет в ту ячейку, в котороя я её вызвал первое число из результирующего массива
Получается
Код: plaintext
1.
2.
1| 2 |3
3| 4 |
Если выделяю в результирующем столбце две строчки и после ввода функции нажимаю Ctrl-Shift-Enter
то получается
Код: plaintext
1.
2.
1| 2 |3
3| 4 |3
Хотя считает весь массив. Как сделать, что б она выводила весь массив при вызове её из верхней ячейки?
Что бы получилось
Код: plaintext
1.
2.
1| 2 |3
3| 4 |7
...
Рейтинг: 0 / 0
Вывод массива из пользовательской функции на лист
    #37532300
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MaxBod, попробуйте так, и сразу вводите функцию в диапазон как формулу массива:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function Расч(m1 As Variant, m2 As Variant, rez As Variant) As Variant
Dim mas( 1  To  100 ,  1  To  1 ) As Integer
If (TypeName(rez) = "Range") And (m1.Rows.Count = m2.Rows.Count) Then
 For i =  1  To m1.Rows.Count
     mas(i,  1 ) = m1.Cells(i,  1 ).Value + m2.Cells(i,  1 ).Value
 Next i
Расч = mas
Else
   If (TypeName(rez) <> "Range") Then Расч = "Ошибка 1!"
   If m1.Rows.Count <> m2.Rows.Count Then Расч = "Ошибка 2!"
End If
End Function
...
Рейтинг: 0 / 0
Вывод массива из пользовательской функции на лист
    #37532307
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавлю:
я вводил в один столбец, т.е. такой вариант функции выдаёт вертикальный массив на 100 ячеек.
...
Рейтинг: 0 / 0
Вывод массива из пользовательской функции на лист
    #37532883
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо так работает
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Вывод массива из пользовательской функции на лист
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]