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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2017, 11:01   #1
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию VBA. Где ошибка в коде?

Почему, когда генератор случайных чисел заполняет таблицу, получается так, что строки между собой одинаковые
Код:
Private Sub CommandButton3_Click()
Answer = MsgBox("Заполнить с помощью генератора случайных чисел?", _
vbQuestion + vbYesNo, "Способ заполнения")
If Answer = vbNo Then
'Формирование исходной матрицы с помощью InputBox
For i = 2 To 8
For j = 1 To 5
 Cells(i, j) = InputBox("Введите элемент Матрицы (" & i & ", " & j & ")")
Next j
Next i
Else
'Формирование исходной матрицы с помощью генератора случайных чисел
 For i = 2 To 8
 For j = 1 To 5
  Cells(i, j) = Rnd(1) * 100
 If Cells(i, j) Mod 2 = 0 Then Cells(i, j) = -Cells(i, j)
 Next j
Next i
End If
9
'Вывод исходной матрицы
For i = 2 To 8
For j = 1 To 5
Cells(i + 1, j).Value = Cells(i, j)
PauseTime = 0.5
 Start = Timer
Do While Timer = Start + PauseTime
 DoEvents
Loop
 Next j
Next i
End Sub
Изображения
Тип файла: jpg 2017-11-19_105156.jpg (112.7 Кб, 20 просмотров)
Саня Новиков вне форума Ответить с цитированием
Старый 19.11.2017, 11:39   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Я не спец в отстойном Бесике, но последний блок, по-моему, вообще лишний. Интуёвина мне подсказывает, что этот пример тупого переписывания с Паскаля в Бесик без включения мозгов. В Паскале действительно после заполнения массива его нужно вывести отдельным блоком. А если VBA вызывается из Excel, то значения в таблице уже будут сразу заполнены. Почему одинаковы во всем столбце? Блин, да ведь этим идиотским
Код:
Cells(i + 1, j).Value = Cells(i, j)
ты и делаешь их их одинаковыми! Коианда эта в переводе на рабоче-крестьянский звучит так: "наплевать, что там было ранее, ты мне тупо перепиши значение из вышестоящей ячейки".
Впрочем, нет, пожалуй. Я с VBA совсем никогда не имел делов, и чем отличается
Код:
 Cells(i + 1, j).Value
от просто
Код:
Cells(i + 1, j)
- ХЗ . Может, VBA-шники подтянутся, глядишь - подскажут. Вот в теме про Excel их, мабудь, больше кучкуется.
Жаль мне людей, которые мучают не своим делом и себя, и это самое дело.

Последний раз редактировалось digitalis; 19.11.2017 в 22:37.
digitalis вне форума Ответить с цитированием
Старый 19.11.2017, 11:57   #3
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию

Это для курсача, я бы с радостью не делал
Спасибо большое!
Саня Новиков вне форума Ответить с цитированием
Старый 19.11.2017, 11:57   #4
Саня Новиков
Пользователь
 
Регистрация: 18.11.2017
Сообщений: 12
По умолчанию

Это для курсача, я бы с радостью не делал
Спасибо большое!
Саня Новиков вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
спасите, добрые люди, пожаааааалуйста:3 где-то в коде закралась ошибка, потому что выводит левые числа, а где, понятия не имею:с typayababa Помощь студентам 9 19.11.2017 11:48
Где ошибка в коде? FlynnTaggart C# (си шарп) 1 07.10.2016 10:37
где ошибка в коде? tfbro Помощь студентам 5 31.12.2013 18:18
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Где ошибка в коде? ilgar-90 Общие вопросы Delphi 2 08.02.2010 09:04