Массив, Цикл
|
|
ABC |
Дата: Четверг, 02.08.2012, 19:02 |
Сообщение № 1 |
|
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация:
112
±
Замечаний:
0% ±
Excel 2007 | |
Здравствуйте! как можно заменить B1 на B2, B2 на B3...B9 на B10 при каждом цикле i [vba]Code Sub www() B1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1) B2 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2) B3 = Array(3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3) B4 = Array(4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4) B5 = Array(5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5) B6 = Array(6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6) B7 = Array(7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7) B8 = Array(8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8) B9 = Array(9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) B10 = Array(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) s = 0 For i = 1 To 10 For dd = 1 To 11 g = Mid(Selection.Value, dd, 1) * B1(dd - 1) 'B2,B3,B4...B10 s = s + g Next w = s - Int(s / 11) * 11 'If w < 10 Then Exit For Next MsgBox "_" & w End Sub [/vba]
Здравствуйте! как можно заменить B1 на B2, B2 на B3...B9 на B10 при каждом цикле i [vba]Code Sub www() B1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1) B2 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2) B3 = Array(3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3) B4 = Array(4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4) B5 = Array(5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5) B6 = Array(6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6) B7 = Array(7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7) B8 = Array(8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8) B9 = Array(9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) B10 = Array(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) s = 0 For i = 1 To 10 For dd = 1 To 11 g = Mid(Selection.Value, dd, 1) * B1(dd - 1) 'B2,B3,B4...B10 s = s + g Next w = s - Int(s / 11) * 11 'If w < 10 Then Exit For Next MsgBox "_" & w End Sub [/vba]ABC
MS Excel 2007 and 2010... ------------------------------- С Уважением, Даулет
|
|
| Ответить
|
Формуляр |
Дата: Четверг, 02.08.2012, 20:31 |
Сообщение № 2 |
|
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация:
255
±
Замечаний:
0% ±
Excel 2003, 2013 | |
Здравствуйте, ABC. Смысл задачи как-то непонятен. Зачем вообще городить матрицу, значения которой легко вычисляются формулой?
[vba]Code B(i, j) = ((i + j - 1) Mod 10) + 1 [/vba]
Здравствуйте, ABC. Смысл задачи как-то непонятен. Зачем вообще городить матрицу, значения которой легко вычисляются формулой?
[vba]Code B(i, j) = ((i + j - 1) Mod 10) + 1 [/vba]Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Четверг, 02.08.2012, 20:32 |
|
| Ответить
|
nilem |
Дата: Четверг, 02.08.2012, 20:55 |
Сообщение № 3 |
|
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016 | |
Может без +1, типа [vba]Code Sub www() Dim i&, j&, t& '... 'B1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1) 'B2 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2) 'B3 = Array(3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3) 'B4 = Array(4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4) 'B5 = Array(5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5) 'B6 = Array(6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6) 'B7 = Array(7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7) 'B8 = Array(8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8) 'B9 = Array(9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) 'B10 = Array(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 's = 0 For i = 1 To 10 For j = 1 To 11 t = (i + j - 1) Mod 10: If t = 0 Then t = 10 s = s + Mid(Selection.Value, j, 1) * t Next w = s - Int(s / 11) * 11 If w < 10 Then Exit For Next MsgBox "_" & w End Sub [/vba]
Может без +1, типа [vba]Code Sub www() Dim i&, j&, t& '... 'B1 = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1) 'B2 = Array(2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2) 'B3 = Array(3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3) 'B4 = Array(4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4) 'B5 = Array(5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5) 'B6 = Array(6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6) 'B7 = Array(7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7) 'B8 = Array(8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8) 'B9 = Array(9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9) 'B10 = Array(10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 's = 0 For i = 1 To 10 For j = 1 To 11 t = (i + j - 1) Mod 10: If t = 0 Then t = 10 s = s + Mid(Selection.Value, j, 1) * t Next w = s - Int(s / 11) * 11 If w < 10 Then Exit For Next MsgBox "_" & w End Sub [/vba]nilem
Яндекс.Деньги 4100159601573
|
|
| Ответить
|
ABC |
Дата: Четверг, 02.08.2012, 21:42 |
Сообщение № 4 |
|
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация:
112
±
Замечаний:
0% ±
Excel 2007 | |
Спасибо Вам, nilem, Формуляр
Спасибо Вам, nilem, ФормулярABC
MS Excel 2007 and 2010... ------------------------------- С Уважением, Даулет
|
|
| Ответить
|