Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 708
от 16.02.2008, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 278, Экспертов: 42
В номере:Вопросов: 2, Ответов: 4

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 122611: Имеется код, вытаскивающий случайную запись из таблицы. Используется функция Rnd(). Почему вытаскиваются одни и те же записи? Как избежать этой псевдослучайности?...
Вопрос № 122673: Есть строка допустим B4:B20, она изменяется и может стать длиней или короче, нужно что бы последняя ячейка для нашего случая это B21 была суммой (B4:B20). Также необходимо использовать свойство Formula ...

Вопрос № 122.611
Имеется код, вытаскивающий случайную запись из таблицы. Используется функция Rnd(). Почему вытаскиваются одни и те же записи? Как избежать этой псевдослучайности?

Приложение:

Отправлен: 11.02.2008, 08:26
Вопрос задал: Mombassa (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Николай Владимирович / Н.В.
Здравствуйте, Mombassa!
Функция Rnd генерит псевдослучайные числа. Чтобы получалась всегда разная последовательность чисел, инициализируйте генератор чисел с помощью randomize.
Для этого напишите строчку
randomize
перед
i = Int(rs.RecordCount * Rnd())

Если rs.RecordCount меньше 10, то всегда будет возвращен 0 (т.к. int округляет число в меньшую сторону).

Удачи!
Ответ отправил: Николай Владимирович / Н.В. (статус: Профессионал)
Россия, Москва
WWW: nvsoft.org
ICQ: 420720
----
Ответ отправлен: 11.02.2008, 08:37
Оценка за ответ: 5

Отвечает: Коровин Александр
Здравствуйте, Mombassa!
Попробуйте до использования функции Rnd() вставить оператор Randomize без аргументов для инициализации генератора случайных чисел, использующим системное время в качестве числа-инициализатора.
Ответ отправил: Коровин Александр (статус: 1-ый класс)
Ответ отправлен: 11.02.2008, 09:03
Оценка за ответ: 5

Отвечает: Максим Sly
Здравствуйте, Mombassa!
Попробуйте в начале процедуры вставить строчку Randomize - эта функция позволяет каждый раз при запуске программы выбирать другое множество чисел
---------
Мы не ищем легких путей.... они сами нас находят:)
Ответ отправил: Максим Sly (статус: 1-ый класс)
Ответ отправлен: 11.02.2008, 12:05


Вопрос № 122.673
Есть строка допустим B4:B20, она изменяется и может стать длиней или короче, нужно что бы последняя ячейка для нашего случая это B21 была суммой (B4:B20). Также необходимо использовать свойство Formula

Приложение:

Отправлен: 11.02.2008, 14:26
Вопрос задал: Irkutskiy Konstantin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Игорь Елизаров
Здравствуйте, Irkutskiy Konstantin!
Здравствуйте, Irkutskiy Konstantin!
Это зависит от того, как заполняются предыдущие ячейки.
если они заполняются также через вашу программу, то можно номер последней ячейки занести в переменную и в формуле использовать CELLS

.Cells(y, x).formulaR1c1 = "=sum(rc[-1]:rc[-10])"

где y - строка
x - столбец

зная начальную ячейку и конечную, строку формул можно предварительно сформировать
вот пример, как у меня реализовано сумморование с заранее неизвестным количеством строк

Dim formula_txt As String
Dim delta As Integer

delta = stroka + 2 - 5

.Cells(stroka + 2, stolb).Value = "ИТОГО"
formula_txt = "=sum(r[-1]c:R[-" + Trim(Str(delta)) + "]c)"

For j = 1 To 39 ' в итоговой строке 39 полей
y = stroka + 2
x = stolb + j

.Cells(y, x).formulaR1c1 = formula_txt

Next j

но есть другой вариант, я его использую все чаще..
Это использование заранее настроенных в EXCEL шаблонов/
В этом случае формулы прописываются в шаблон заранее, а программно (или руками)
вставляете нужные столбцы или ячейки.

С уважением, Игорь

---------
Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: Студент)
Ответ отправлен: 11.02.2008, 17:30


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.70 от 17.01.2008
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное