Да там куча мала ошибок
1. Частая ошибка.
input0 может быть и диапазоном, и значением. Не экономьте на символах:
inp1 = input02.
ReDim inp1(C ) - в данном случае не нужно. Массив сам понимает, куда ему расти.
3. Первый элемент массива, который принимает значения диапазона -1 (первый)
Код |
---|
Ck(I, J) = Exp(inp1(K) / inp1(K - 1)) |
Вы пытаетесь на первом шаге цикла
(K = 1) получить нулевой элемент
4. Цикл по всем элементам масива
но пытаетесь обратиться к четвертому (см. п.2)
5. Здесь не нужно указывать тип значений массивов, редактор разберется
6. А вот типы переменных в VBA нужно указывать для каждой переменной. У Вас три первых
(K, C, I) -
Variant. (Попутно: обычно переменные счетчиков именуются строчными буквами)
7. Зачем активировать лист, непонятно.
Код |
---|
Sheets("Output_Ck").Select 'выбор вкладки
Range("A:A").Select
----------------------------
Sheets("Output_Ck").Select 'выбор вкладки
Range("B:B").Select |
Функция записана в ячейку и результат вернет туда же, результат ее работы не выводится в другой выделенный диапазон. Для вывода результата в дргие диапазоны должна быть не функция. а процедура
Sub8. Функция
C_k1 записана в одной ячейке и результат выводит в эту ячейку. Вы же в функцию записываете массив
Ck ( 3*3). Возможно, в новых версиях
Excel так можно, но ниже 2013 нельзя.
А в
Sub заполненный массив можно выгрузить на лист в диапазон с заданными размерами:
Код |
---|
Sheets("Output_Ck").Cells(2,2).Resize(C,C).Value = Ck
' надежнее
Sheets("Output_Ck").Cells(2,2).Resize(UBound(Ck),UBound(Ck,2)).Value = Ck |
Цитата |
---|
McClane написал: куда можно посмотреть для поиска ошибки. |
Ставим точку останова (клик на полоске слева от кода напротив нужной строки - строка выделится красным). Запускаем расчет функции (заходим в ячейку с функцией,
Enter). Функция отработает до красной строки и остановится. Дальше - F8 (пошаговый режим)
В окне
Locals (
View-Locals Window) можно контролировать состояние переменных и массивов
Цитата |
---|
ост столбцо ... на отд вкладку |
И много Вы времени сэкономили на нескольких буквах? Уважайте читающих.