Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Excel, VBA] массивы


Автор: Metalex 16.3.2010, 15:54
Доброго всем времени суток!!
Задачка такова: Задан массив A(n), элементы которого не повторяются. Заменить местами наибольший и последний элементы.
В VBA не очень силен, поэтому прошу вашей помощи. Во-первых, я не знаю, как с листа экселя перенести элементы в массив. Ну а заменить при уже готовом массиве, думаю, смогу.
Благодарю за участие.

Добавлено через 1 минуту и 16 секунд
Если у кого есть возможность, напишите, пожалуйста, пошаговое решение задачи.

Автор: Akina 16.3.2010, 16:38
Цитата(Metalex @  16.3.2010,  16:54 Найти цитируемый пост)
 Заменить местами 

Потрясающее выражение!

Цитата(Metalex @  16.3.2010,  16:54 Найти цитируемый пост)
В VBA не очень силен, поэтому прошу вашей помощи

Ну так и проси её в разделе "Центр помощи"...

Автор: Metalex 16.3.2010, 18:49
Цитата(Akina @  16.3.2010,  16:38 Найти цитируемый пост)
Потрясающее выражение!

ну не элементы, а их значения.... чего к словам придиратся   smile 

Автор: Akina 16.3.2010, 18:56
Да просто выражение забавное.

Автор: Metalex 16.3.2010, 21:27
Akina, эх, лучше бы ты мне помог.

Автор: Staruha 17.3.2010, 09:38
Ой,Акина опять скандалит.Никак не могу найти грань,где он считает что нужно помочь а где нет.

Metalex 
ты тоже хорош,есть поиск введи слоыво Массив ,найдешь кучу интересного.
Код

Private Sub CommandButton1_Click()
Dim spisok(1 To 5, 1 To 5) 'Обьявляем массив 5строк два столбца
Dim i As Integer
Dim r As Integer
ComboBox1.Clear
For i = 1 To 5
 For r = 1 To 2
      
      spisok(i, r) = Cells(i, (r )) 'присваиваем значение  столбцов массиву
    
Next r
Next i

End Sub

Автор: Akina 17.3.2010, 10:03
Цитата(Staruha @  17.3.2010,  10:38 Найти цитируемый пост)
Никак не могу найти грань,где он считает что нужно помочь а где нет.

В данном случае - чистой воды домашнее задание. От того, кто перепишет решение и забудет его навсегда, не вынеся себе ничего полезного. Какой поиск по справке? он даже раздел правильно подобрать не в состоянии! 
Такие вопросы имхо следует вышвыривать из тематических форумов без всякого сожаления.

Автор: Metalex 17.3.2010, 16:44
Staruha, спасибо. 

Akina, ну так удаляй, чего же ждешь.

Автор: mihanik 17.3.2010, 21:26
Цитата(Metalex @  17.3.2010,  16:44 Найти цитируемый пост)
Akina, ну так удаляй, чего же ждешь. 

Как скажешь!

Автор: alex77755 18.3.2010, 08:04
Задан массив A(n)
как-то не вяжется с 
spisok(i, r)

Автор: Akina 18.3.2010, 08:47
Цитата(Metalex @  16.3.2010,  16:54 Найти цитируемый пост)
я не знаю, как с листа экселя перенести элементы в массив

Например
Код

Dim x() as variant ' кто знает что там в ячейках
x = range("A1:A10").Cells.Value ' Результат - двумерный массив значений

Цитата(Metalex @  16.3.2010,  16:54 Найти цитируемый пост)
заменить при уже готовом массиве, думаю, смогу

Код

Sub Swap(ByRef Val1,ByRef Val2)
Dim Tmp
Tmp=Val1
Val1=Val2
Val2=Tmp
End sub
'...
Swap x(5), x(10)
'...

Автор: Staruha 18.3.2010, 15:24
alex77755 
Там пример на два столбца на один будет
spisok(i) 

Автор: Metalex 21.3.2010, 13:28
Код

Swap x(5), x(10)

Здесь возникает ошибка.. Пишет, что выходит за пределы, хотя ничего не выходит..
Я прикреплю файл, может кто глянет..

Автор: Metalex 22.3.2010, 12:18
Akina, помоги, пожалуйста, почему там ошибка?

Автор: Akina 22.3.2010, 12:22
Цитата(Metalex @  22.3.2010,  13:18 Найти цитируемый пост)
почему там ошибка? 

Потому что кто-то внимательно читать не умеет.

Цитата(Akina @  18.3.2010,  09:47 Найти цитируемый пост)
Результат - двумерный массив значений


Автор: Metalex 22.3.2010, 23:40
Akina, а одномерный как сделать?

Автор: Akina 23.3.2010, 08:56
Не "как", а "зачем". Если нет ответа на второй вопрос (варианты типа "мне так удобнее" - это бред, а не ответ), то первые не имеет права на существование.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)