Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2012, 16:18   #1
BioNoob
 
Регистрация: 05.06.2012
Сообщений: 8
Восклицание Ошибка runtime error '9' subscript out of range

Дан массив A(N,N). Напишите программу, которая прибавляла бы к каждому элементу данной строки элемент, принадлежащий этой строке и главной диагонали.
программа есть но выдаёт ошибку runtime error '9' subscript out of range
вот код программы:

Option Explicit
Sub zad3()
Const N = 10, M = 10
Dim A(1 To N, 1 To M) As Double
Dim i As Integer, j As Integer, g As Double
Randomize
For i = 1 To N
For j = 1 To M
A(i, j) = 1 + Int(Rnd(4) * 10)
Sheets(1).Cells(i, j).Value = A(i, j)
'MsgBox A(i, j) & " "
Next j
'MsgBox (" ")
Next i
'MsgBox (" ")
For i = 1 To N
g = A(i, i)
Next i
For j = 1 To M
A(i, j) = A(i, j) + g
Sheets("Лист1").Cells(i + 12, j).Value = A(i, j) //на этом месте выдаётся ошибка
Next j
MsgBox (A(i, j) & " ")
MsgBox (" ")
End Sub

можете сказать как избавится от ошибки

Последний раз редактировалось BioNoob; 05.06.2012 в 16:23.
BioNoob вне форума Ответить с цитированием
Старый 05.06.2012, 16:25   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

У вас 2 цикла не были вложены - из-за этого и ошибка выскакивала.

Вот так будет работать
(алгоритм не проверял - но ошибка теперь не выскакивает)

Код:
Sub zad3()
    Const N = 10, M = 10
    Dim A(1 To N, 1 To M) As Double
    Dim i As Integer, j As Integer, g As Double
    Randomize
    For i = 1 To N
        For j = 1 To M
            A(i, j) = 1 + Int(Rnd(4) * 10)
            Sheets(1).Cells(i, j).Value = A(i, j)
        Next j
    Next i
    For i = 1 To N
        g = A(i, i)
        For j = 1 To M
            A(i, j) = A(i, j) + g
            Sheets(1).Cells(i + 12, j).Value = A(i, j)    'на этом месте выдаётся ошибка
        Next j
    Next i
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 05.06.2012, 16:33   #3
BioNoob
 
Регистрация: 05.06.2012
Сообщений: 8
По умолчанию

Спасибо большое я понял где ошибся!!!
BioNoob вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очередная ошибка Run-time error 9: subscript out of range klimusik Microsoft Office Excel 7 07.05.2012 00:08
Ошибка Run-time error '9' : Subscript out of range mad_moon Microsoft Office Excel 11 12.12.2011 23:37
Subscript out of range -в чем ошибка Bape}l{ka Microsoft Office Excel 4 14.11.2011 16:26
Runtime Error '1004': Range of Object '_Global' Failed panuta Microsoft Office Excel 6 17.05.2010 17:04
ReDim и Subscript out of range (Error 9) oldfatham Microsoft Office Excel 5 24.08.2009 18:32