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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2009, 13:14   #1
umiko
Пользователь
 
Регистрация: 15.05.2009
Сообщений: 13
По умолчанию Помогите мне пожалуйста с задачкой

Помогите мне пожалуйста с задачкой на VBA в EXcel
Вот условие: Дан двумерный массив из 20 строк. Перенести первые k строк в конец массива, соблюдая порядок их следования.
Код:
Private Sub CommandButton1_Click()
Dim A()
Dim B()
Dim c
Dim k

c = 18
k = 13
ReDim A(19, c)
ReDim B(19, c)

For i = 0 To 19
For j = o To c
A(i, j) = i
Next i
Next j

For i = 0 To 19
For j = 0 To c
B(i, j) = A((i + k) Mod 19, j)
Next j
Next i

For i = 0 To 19
For j = 0 To c
A(i, j) = B(i, j)
Next j
Next i

End Sub


Задачка выдает ошибку: ссылается на Next i с таким предупреждением Invalid Next control variable reference
umiko вне форума Ответить с цитированием
Старый 16.05.2009, 13:16   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

И зачем создавать дубликаты тем?

Ответ здесь: http://www.programmersforum.ru/showthread.php?t=49808
EducatedFool вне форума Ответить с цитированием
Старый 16.05.2009, 13:18   #3
umiko
Пользователь
 
Регистрация: 15.05.2009
Сообщений: 13
По умолчанию

думала не туда скинула тему...так получилось,спасибо
umiko вне форума Ответить с цитированием
Старый 16.05.2009, 13:19   #4
umiko
Пользователь
 
Регистрация: 15.05.2009
Сообщений: 13
По умолчанию

задачка не работает(((
umiko вне форума Ответить с цитированием
Старый 16.05.2009, 13:32   #5
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
задачка не работает(((
А кто сказал, что код будет работать?
Тебе надо было избавиться от выскакивающей ошибки, что я и сделал...

Чтобы увидеть, что делает твой код, запусти слегка модернизированный его вариант:

Код:
Private Sub CommandButton1_Click()
    ActiveSheet.Cells.Clear ' очистка листа
    c = 18: k = 13: ReDim A(19, c): ReDim B(19, c)

    For i = 0 To 19
        For j = o To c
            A(i, j) = i
        Next j
    Next i
    [a1:s20] = A    ' переносим массив на лист

    For i = 0 To 19
        For j = 0 To c
            B(i, j) = A((i + k) Mod 20, j)
        Next j
    Next i

    For i = 0 To 19
        For j = 0 To c
            A(i, j) = B(i, j)
        Next j
    Next i
    [a25] = "Новый массив": [a1:s20].Offset(25) = A    ' переносим массив на лист
End Sub
И ты увидишь, что твой код просто сдвигает строки в массиве...
EducatedFool вне форума Ответить с цитированием
Старый 16.05.2009, 13:36   #6
umiko
Пользователь
 
Регистрация: 15.05.2009
Сообщений: 13
По умолчанию

эту я ошибку сразу исправила,как ты показал...
спасибо большое...интересная задачка оказалась
umiko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите мне пожалуйста с задачкой umiko Помощь студентам 2 16.05.2009 13:16
Помогите пожалуйста с задачкой yogupt Помощь студентам 2 14.05.2009 18:05
Помогите с задачкой, пожалуйста! korteas Помощь студентам 6 09.10.2007 12:10
Помогите пожалуйста с задачкой Antowka Помощь студентам 1 13.06.2007 13:41