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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 22:38   #1
mad_moon
 
Регистрация: 08.05.2011
Сообщений: 9
Вопрос Ошибка Run-time error '9' : Subscript out of range

В матрице нужно отсортировать элемменты каждого рядочка в порядке уменьшения (использовать метод минимального элемента)

При работе выдает ошибку - Run-time error '9' : Subscript out of range

Помогите!
Заранее благодарна!

Option Base 1
Option Explicit
Sub Rgr()
Dim A() As Double, i As Integer, j As Integer, n As Integer, m As Integer, Min As Integer
Dim k As Integer, l As Integer, R As Integer, ingex1 As Integer, index2 As Integer
n = Val(InputBox("Ââåä³òü ÷èñëî ðÿäê³â:", "Ââåäåííÿ ðîçì³ðíîñò³ ìàòðèö³", "5"))
m = Val(InputBox("Ââåä³òü ÷èñëî ñòîâï÷èê³â:", "Ââåäåííÿ ðîçì³ðíîñò³ ìàòðèö³", "6"))
ReDim A(n, m)
Randomize Time
For i = 1 To n
For j = 1 To m
A(i, j) = Int(Rnd * 100) - Int(Rnd * 100)
Cells(i, j) = A(i, j)
Next j
Next i
k = n
l = m
For i = 1 To n
Do
Min = A(k, l)
ingex1 = k
index2 = l
For j = 1 To m
If A(i, j) < Min Then
Min = A(i, j)
ingex1 = i
index2 = j
End If
Next j
If Not index2 = l Then
R = A(ingex1, index2)
A(ingex1, index2) = A(k, l)
A(k, l) = R
End If
l = l + 1
Loop While l > 0
k = k + 1
Next i
For i = 1 To n
For j = 1 To m
Cells(i + n + 1, j + n + 1) = A(i, j)
Next j
Next i
End Sub
mad_moon вне форума Ответить с цитированием
Старый 10.12.2011, 22:52   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
=======================
 Do While l > 0
 Min = A(k, l)
 ingex1 = k
 index2 = l
 For j = 1 To m
 If A(i, j) < Min Then
 Min = A(i, j)
 ingex1 = i
 index2 = j
 End If
 Next j
 If Not index2 = l Then
 R = A(ingex1, index2)
 A(ingex1, index2) = A(k, l)
 A(k, l) = R
 End If
 l = l - 1
 Loop
============
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.12.2011, 15:49   #3
mad_moon
 
Регистрация: 08.05.2011
Сообщений: 9
Печаль

не работает((
mad_moon вне форума Ответить с цитированием
Старый 11.12.2011, 16:00   #4
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Вставил ваш код с изменениями,работает
В правильность расчетов не вникал
Вложения
Тип файла: rar работает.rar (11.4 Кб, 9 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.12.2011, 16:32   #5
mad_moon
 
Регистрация: 08.05.2011
Сообщений: 9
По умолчанию

программа запускаеться, но цифры не ставяться в порядке убывания..
цифры по матрице прыгают куда им вздумаеться(
mad_moon вне форума Ответить с цитированием
Старый 11.12.2011, 16:44   #6
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Off - урок русского языка:
запускается, ставятся, вздумается
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 11.12.2011, 17:04   #7
mad_moon
 
Регистрация: 08.05.2011
Сообщений: 9
По умолчанию

лучше бы с программой помогли бы..
mad_moon вне форума Ответить с цитированием
Старый 11.12.2011, 17:53   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Если doober сказал, что работает - я даже не смотрел...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 11.12.2011, 19:40   #9
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Ошибка Run-time error '9' : Subscript out of range
Эту ошибку я ликвидировал.а в сам расчет не вникал,не люблю я
циклы Do Loop он и медленнее чем For Next ,и не нравиться мне.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 11.12.2011, 23:01   #10
mad_moon
 
Регистрация: 08.05.2011
Сообщений: 9
Печаль

а как написать такую программу используя только For Next?

мне очень нужна правильно работающая программа

а эта как ни крути работать как надо не хочет((
mad_moon вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка run-time Error 1004 общая ошибка ODBC kaval88 Microsoft Office Excel 0 27.02.2011 20:20
Периодическая ошибка Run-time error -2147417848 (80010108) Automation error в файле с макросом faraviper Microsoft Office Excel 0 24.02.2011 16:23
Ошибка run-time error 13 Type mismatch в VBA Kracozebr Microsoft Office Word 9 19.07.2010 16:10
ReDim и Subscript out of range (Error 9) oldfatham Microsoft Office Excel 5 24.08.2009 18:32
Ошибка Run-Time error 13 DEZuv Microsoft Office Access 0 03.04.2009 12:25