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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2012, 18:05   #1
sabrishat
 
Регистрация: 07.04.2012
Сообщений: 6
Смущение Массивы в vba excel

Необходимо в массиве найти наибольшее по модулю число, и в дальнейшем получить матрицу исключив строку и столбец, на котором находится данный элемент. Нахождение элемента работает, а удалить строку и столбец не знаю как:

Код:
Sub maximum()
Dim i As Single
Dim j As Single
Dim n As Single
Dim m As Single
Dim max As Integer
n = InputBox("введи n= ")
m = InputBox("введи m= ")
ReDim A(m, n)
For i = 1 To n
For j = 1 To m
A(i, j) = InputBox("введи A (" & i & "," & j & ")=")
Next j
Next i
max = A(1, 1): k1 = 1: l1 = 1
For i = 1 To n
For j = 1 To m
If Abs(A(i, j)) > max Then max = Abs(A(i, j))
k1 = i
l1 = j
Next j
Next i
MsgBox ("max=") & max
end sub

Последний раз редактировалось sabrishat; 07.04.2012 в 18:31.
sabrishat вне форума Ответить с цитированием
Старый 07.04.2012, 19:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
If Abs(A(i, j)) > max Then max = Abs(A(i, j))
Тебе нужно находить не только максимум а и его координаты, а твой IF распространяется только на одну строку:
Код:
 If Abs(A(i, j)) > max Then 
  max = Abs(A(i, j)) 
  k1 = i
  l1 = j
 End If
Next j
Массивы ты создавать умеешь. Создавай новый массив но A(m-1, n-1)
Далее в цикле переносишь данные из первого массива
Код:
if k1<>j and l1<>i then
 переписываем из старого массива в новый
 b(x,y)=a(i,j)
 x=x+1
 y=y+1
end if
координаты элемента (x и y), вносимого в новый массив нужно отдельно инкрементировать
Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.04.2012, 20:07   #3
sabrishat
 
Регистрация: 07.04.2012
Сообщений: 6
По умолчанию

идея понятна, спасибо!!!
sabrishat вне форума Ответить с цитированием
Старый 07.04.2012, 22:15   #4
sabrishat
 
Регистрация: 07.04.2012
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Идея понятна?
Еще вопрос как вывести эти два массива на лист? есть заготовка:

Код HTML:
Sheets("Лист1").Activate
Range("A1").CurrentRegion.Select
m = Selection.Columns.Count
n = Selection.Rows.Count
ReDim A(m, n)
For i = 1 To n
For j = 1 To m
Next j
Next i
не пойму в каком месте вставлять функцию inputbox . Перепробовал многое, но все равно или ругается, или вылетает программа...
sabrishat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
VBA Массивы pockes Помощь студентам 0 05.01.2012 20:05
Массивы vba tema654 Microsoft Office Access 3 16.10.2011 20:00
Массивы в VBA Excel 2003 Anutohka Microsoft Office Excel 1 21.05.2010 18:51
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47