Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выходит сообщение Subscript out of range - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выходит сообщение Subscript out of range (Макросы/Sub)
Выходит сообщение Subscript out of range
ilnaramah Дата: Воскресенье, 26.10.2014, 18:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Здравствуйте! Помогите пожалуйста

[vba]
Код
Sub Run()
Dim sn()
N = Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 0 To N Step 1
sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value
Worksheets("Volatility").Cells(i + 2, 2) = sn(i - 2)
Next i
End Sub
[/vba]

Программа ругается на строчку sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value Subscript out of range. не пойму в чем проблема, помогите пожалуйста
 
Ответить
СообщениеЗдравствуйте! Помогите пожалуйста

[vba]
Код
Sub Run()
Dim sn()
N = Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 0 To N Step 1
sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value
Worksheets("Volatility").Cells(i + 2, 2) = sn(i - 2)
Next i
End Sub
[/vba]

Программа ругается на строчку sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value Subscript out of range. не пойму в чем проблема, помогите пожалуйста

Автор - ilnaramah
Дата добавления - 26.10.2014 в 18:58
Pelena Дата: Воскресенье, 26.10.2014, 19:06 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
При i=0 получаем sn(-2)

Для более конкретного ответа нужен файл


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
При i=0 получаем sn(-2)

Для более конкретного ответа нужен файл

Автор - Pelena
Дата добавления - 26.10.2014 в 19:06
ilnaramah Дата: Воскресенье, 26.10.2014, 19:08 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
В пятой строчке sn(i), а не sn(i-2). Ошибка не исчезла
 
Ответить
СообщениеВ пятой строчке sn(i), а не sn(i-2). Ошибка не исчезла

Автор - ilnaramah
Дата добавления - 26.10.2014 в 19:08
ilnaramah Дата: Воскресенье, 26.10.2014, 19:15 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Вот файл
К сообщению приложен файл: volatility.xlsx (15.4 Kb)
 
Ответить
СообщениеВот файл

Автор - ilnaramah
Дата добавления - 26.10.2014 в 19:15
Pelena Дата: Воскресенье, 26.10.2014, 19:24 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
[vba]
Код
Sub Run()
Dim sn()
n = Cells(Rows.Count, 1).End(xlUp).Row - 1
ReDim sn(0 To n)
For i = 0 To n Step 1
sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value
Worksheets("Volatility").Cells(i + 2, 2) = sn(i)
Next i
End Sub
[/vba]

Не понятно назначение массива sn, почему напрямую не написать, раз уж цикл используете
[vba]
Код
Sub Run()
n = Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 0 To n
Worksheets("Volatility").Cells(i + 2, 2) = Worksheets("Volatility").Cells(i + 2, 1).Value
Next i
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение[vba]
Код
Sub Run()
Dim sn()
n = Cells(Rows.Count, 1).End(xlUp).Row - 1
ReDim sn(0 To n)
For i = 0 To n Step 1
sn(i) = Worksheets("Volatility").Cells(i + 2, 1).Value
Worksheets("Volatility").Cells(i + 2, 2) = sn(i)
Next i
End Sub
[/vba]

Не понятно назначение массива sn, почему напрямую не написать, раз уж цикл используете
[vba]
Код
Sub Run()
n = Cells(Rows.Count, 1).End(xlUp).Row - 1
For i = 0 To n
Worksheets("Volatility").Cells(i + 2, 2) = Worksheets("Volatility").Cells(i + 2, 1).Value
Next i
End Sub
[/vba]

Автор - Pelena
Дата добавления - 26.10.2014 в 19:24
ilnaramah Дата: Воскресенье, 26.10.2014, 19:29 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
спасибо большое, это неконечный вариант, а пока я смотрю как vba присваивать и записывать значения, мне просто нужен будет этот механизм
 
Ответить
Сообщениеспасибо большое, это неконечный вариант, а пока я смотрю как vba присваивать и записывать значения, мне просто нужен будет этот механизм

Автор - ilnaramah
Дата добавления - 26.10.2014 в 19:29
Pelena Дата: Воскресенье, 26.10.2014, 19:34 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Можно в Готовых решениях посмотреть ещё
Считывание диапазона в массив


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеМожно в Готовых решениях посмотреть ещё
Считывание диапазона в массив

Автор - Pelena
Дата добавления - 26.10.2014 в 19:34
alex1248 Дата: Понедельник, 27.10.2014, 00:22 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
ilnaramah, попробуйте переобъявить массив
[vba]
Код
ReDim sn(0 to N)
[/vba]
после вычисления N.
Вроде после переобъявления вашу проблемную строку проходит, но, естественно, тормозит на следующей.


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Понедельник, 27.10.2014, 00:30
 
Ответить
Сообщениеilnaramah, попробуйте переобъявить массив
[vba]
Код
ReDim sn(0 to N)
[/vba]
после вычисления N.
Вроде после переобъявления вашу проблемную строку проходит, но, естественно, тормозит на следующей.

Автор - alex1248
Дата добавления - 27.10.2014 в 00:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выходит сообщение Subscript out of range (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!