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

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


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

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

Выпуск № 364
от 05.09.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 194, Экспертов: 34
В номере:Вопросов: 3, Ответов: 6


Вопрос № 53800: Здравствуйте, срочно нужна ваша помощь ! Программа, запущенная на выполнение в Visual Basic for MSDOS 1.0 работает нормально, но отказывается работать на другом компьютере и даже на том же самом, если я компилирую и перемещаю экзешник на другой диск....
Вопрос № 53856: Доброго здоровья и крепких нервов экспертам! Есть в Excel табличка с двумя листами - в одном некие данные, в другом т.н. "сводная таблица" (pivot table) по этим данным. Данные в первом листе преиодически изменяются (в основном к...
Вопрос № 53865: Уважаемые эксперты! Помогите, пожалуйста! Мне необходимо создать в EXCEL тест для проверки знаний, я сделала каждый вопрос на отдельном листе, нужно ограничить время ответа на каждый вопрос, но в то же время сохранить возможность перехода к следу...

Вопрос № 53.800
Здравствуйте, срочно нужна ваша помощь ! Программа, запущенная на выполнение в Visual Basic for MSDOS 1.0 работает нормально, но отказывается работать на другом компьютере и даже на том же самом, если я компилирую и перемещаю экзешник на другой диск. Программа - простое консольное приложение (см. приложение). Просит какой-то файл VBDRT10E.ехе. Подскажите, пожалуйста - что это за файл и как выйти из положения ?

Приложение:

Отправлен: 30.08.2006, 18:31
Вопрос задал: Varfolomey (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: C4tnt
Здравствуйте, Varfolomey!

К сожалению у меня нет такого BASIC'а

Несколько общих рекомендаций:

Если есть опции компилятора, поищите в них переключатель вида
compile to P-CODE/Native code (выбрать Native code) Это для MSVB, может и в досе работает.

Попробуйте найти файл и положить его рядом с программой. Скорее всего этот файл - интерпретатор бейсикового кода, что-то типа MSVBM60.dll в Windows. Особенно если название расшифровывается так: VB Dos RunTime 10 E

Если у бейсика был установщик - стоит изучить переменную PATH (это или config.sys или autoexec.bat)

P.S. Да, я занят - пишу этот ответ
---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: C4tnt (статус: 2-ой класс)
Ответ отправлен: 30.08.2006, 19:22
Оценка за ответ: 4
Комментарий оценки:
Cпасибо за помощь, но все-таки ответ Кокорича Вадима Леонидовича конкретней.

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Varfolomey!

Судя по всему, этот файл - run-time модуль и наличие запроса на него говорит о том, что программа скомпилирована в так называемый Run-time.exe. Старые версии Basic (но не все!) поддерживали компиляцию также и Standalone-exe, выполняемого вне среды разработки. В меню Run стоит посмотреть опции компиляции - создав экзешник такого типа, Вы избавитесь от "довеска" к программе. Правда, конечный файл в этом случае потяжелеет (и, возможно, значительно) - плата за удобство.

---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 5-ый класс)
Ответ отправлен: 30.08.2006, 19:50
Оценка за ответ: 5
Комментарий оценки:
В точку! Там есть выбор режима компиляции "RunTime-exe" - "Standalone-exe".


Вопрос № 53.856
Доброго здоровья и крепких нервов экспертам!
Есть в Excel табличка с двумя листами - в одном некие данные, в другом т.н.
"сводная таблица" (pivot table) по этим данным.
Данные в первом листе преиодически изменяются (в основном кол-во записей)
После каждого изменения приходится лезть в свойства итоговой таблицы и менять диапазон и на актуальный.
Хотелось бы пример скрипта на VB, который можно привязать к кнопке для изменения диаразона значений для сводной таблицы.
Примечание: таблица данных начинается всегда со строки 2 и заканчивается пустыми строками. Внутри таблицы пустых строк нет.

Отправлен: 31.08.2006, 10:51
Вопрос задал: SlavikP (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: EPDSota
Здравствуйте, SlavikP!

пишешь макрос такого вида (alt-F11 - вызывает бейсик, в нем создаешь новый модуль и пишешь в нем):
function GetTableSize as integer
i=2
while activedoument.sheets('Имя_листа_твоей_таблицы_с_данными').cells(2,i)<>"" do
i=i+1
wend
end function
Потом в любую ячейке этого документа можешь ее использовать (втставив формулу):
=GetTableSize()

---------
Открыть глаза навстречу солнцу
Ответ отправил: EPDSota (статус: Специалист)
Ответ отправлен: 31.08.2006, 11:00

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, SlavikP!

Если исходить из того, что вам известен диапазон ячеек, содержимое которых может измениться, то этот макрос перед закрытием приложения Excel предлагает сохранить возможные изменения или отказаться (не сохранять):

Dim V ' в область объявлений
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("Обновить содержимое итоговой таблицы в соответствии с данными Листа1 ?", vbOKCancel) = vbOK Then
Worksheets(1).Activate
V = Range("A1:C4").Value
Worksheets(3).Activate
Range("A1:C4").Value = V
Worksheets(1).Activate
Application.Quit
End If
End Sub

Вариантов вообще много - можно было бы сделать это без запроса к пользователю или только при активации листа с итоговой таблицей, или поместить код (как следует из вашего вопроса) в обработку события Commandbutton1_Click().
---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 5-ый класс)
Ответ отправлен: 31.08.2006, 18:19


Вопрос № 53.865
Уважаемые эксперты!
Помогите, пожалуйста! Мне необходимо создать в EXCEL тест для проверки знаний, я сделала каждый вопрос на отдельном листе, нужно ограничить время ответа на каждый вопрос, но в то же время сохранить возможность перехода к следующему вопросу до истечения установленного времени. Возможно ли установить разное время на каждый вопрос?
Спасибо
Отправлен: 31.08.2006, 11:48
Вопрос задала: Lubov (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Кокорич Вадим Леонидович
Здравствуйте, Lubov!

Вы вряд ли сможете задать время на обработку вопроса - VBA, в отличие от VB, не имеет контрола Timer, так что автоматической смены вопроса не произойдет. Чтобы узнать, склько времени тестируемый затратил на ответ, с помощью функции Time зафиксируйте сначала время получения вопроса, а затем - отправки ответа. Разница и покажет, превысил ли испытуемый лимит времени. Как мне кажется, это единственный вариант.

К сожалению, каким образом пользователь получает вопросы и отправляет ответы Вы не описали, поэтому ответ такой общий. Если Вы оставите в мини-форуме вопроса дополнительную информацию, ответ будет более конкретный, с примерами.
---------
Труд сделал обезьяну человеком, а лень человека - программистом !
Ответ отправил: Кокорич Вадим Леонидович (статус: 5-ый класс)
Ответ отправлен: 31.08.2006, 22:35

Отвечает: Митрофанов Артем Борисович
Здравствуйте, Lubov!
Для установки времени на ответ обычно используется управляющий элемент "Таймер". Возникает вопрос можно ли установить разное время и если да, то как. Ответ прост. Создайте несколько(сколько нужно) "Таймеров" и установите у них разные значения свойств Interval. Удачи!
Ответ отправил: Митрофанов Артем Борисович (статус: 3-ий класс)
Ответ отправлен: 01.09.2006, 18:12


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное