|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2010, 11:29 | #1 |
Пользователь
Регистрация: 27.11.2009
Сообщений: 31
|
как присвоить все три значения вектору В и вывести его как массив столбец при вызове функции
Доброго времени суток!
Помогите с выводом текста на лист Экселя. Имеется следующий программный код: Public Function ser(A) Dim i As Integer, j As Integer, n As Integer, q As Integer, w As Integer, d As Integer n = A.Rows.Count Dim B() As Double ReDim B(1 To 3, 1 To 1) For i = 1 To n For j = 1 To n Select Case i Case Is > j q = q + A(i, j) Case Is = j w = w + A(i, j) Case Is < j d = d + A(i, j) End Select Next j Next i End Function А вот как присвоить все три значения вектору В и вывести его как массив столбец при помощи вызова функции на листе Эксель не знаю... Подскажите пожалуйста |
07.03.2010, 13:31 | #2 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
Начну по порядку.Насклько мне известно в Ёкселе функция возвращает только одно значение в данном случае "ser" только в ту ячейку, в которой функция вызвана. И как правило именно аргументы (в данном случае он один и не объявлен его тип) участвуют при расчётах. То есть в функции должно присутсвовать "ser =".
i = A(i, j) вряд ли прокатит. Если A объявить как Range, то можно взять так: i = A.Formula(i, j) Зачем объявлен и определён его размер массив B Озвучте задачу полностью
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru Последний раз редактировалось alex77755; 07.03.2010 в 14:12. |
07.03.2010, 14:06 | #3 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
Не знаю твоего условия. Выбери, что тебе нужно. Но вывод всё равно в одну ячейку.
Код:
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
07.03.2010, 14:08 | #4 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
2 Tomoa:
см. вложение. Откройте код, там приведен пример - две элементарные функции. В первой колонке результат выведен, как функция, в 4-й колонке и дальше, как массив. Чтобы вывести данные как массив, в любой ячейке пишем =f1 (выбираем из функций, определенных пользователем), затем отмечаем эту ячейку и две правее, жмем F2, Ctrl+Shift+Enter. Как поправить ваш код, надеюсь сами разберетесь... 2 alex77755: Цитата:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 07.03.2010 в 14:10. |
|
07.03.2010, 14:09 | #5 |
Пользователь
Регистрация: 27.11.2009
Сообщений: 31
|
Вот полное условие:
Составить программу вычисления сумм элементов матрицы А размера n x n, лежащих выше, ниже и на главной диагонали. Результат вычислений записать в одномерный массив. "i = A(i, j) вряд ли прокатит. Если A объявить как Range, то можно взять так: i = A.Formula(i, j)" если честно, то не совсем вас поняла |
07.03.2010, 14:22 | #6 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
Как вариан можно в качестве второго аргумента использовать предыдущую ячейку с нужной в ней буквой. И вызвать функцию во всех трёх ячейках
Код:
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
07.03.2010, 15:27 | #7 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
IgorGO
Поражаюсь как хорошо ты знаешь формулы. Не сомневаюсь, что и всё задание сможешь решить с помощью формул без программы. Но вопрос "составить программу". Так вот вопрос: как вывести програмно массив из функции: Sub может делать с ячейками што угодно, и массив вывести одним движением, а функция - нет. Даже если из функции вызвать процедуру и попытаться записать в другую ячейку - вываливатся. По крайне мере я пока не смог.
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
07.03.2010, 17:26 | #8 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
2.Я же привел пример, чуть выше, и на словах обьяснил, как этим пользоваться. Что там не выходит вывести данные в другую ячейку? 3.И последнее касательно начального вопроса: в самом конце, перед строкой End Function ser = array(q,w,d). Повторюсь, как вывести результаты в три отдельных ячейки - писал.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
08.03.2010, 20:42 | #9 | ||
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
Цитата:
Цитата:
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как присвоить значение функции? | boris-blade | Microsoft Office Word | 3 | 17.01.2010 17:09 |
Как передать адрес метода из dll в приложение и присвоить его событию OnClick? | puga555 | Общие вопросы Delphi | 1 | 22.12.2009 17:04 |
неубиваемый вирус! все антивирусы не находят его! кто знает как его убрать? | Yury111 | Безопасность, Шифрование | 12 | 05.06.2009 11:19 |
Как вывести один столбец в несколько??? | M&Ms | Microsoft Office Excel | 9 | 21.07.2008 14:19 |
Как мне сделать так штоби при вводе массива все значения сами переносились по словам. Помогити плиз | KSP | Общие вопросы Delphi | 7 | 24.09.2007 22:44 |