#excel #forms #vba
#excel #формы #vba
Вопрос:
Я новичок во всех пользовательских формах и VBA, но пытался выяснить, как это сделать в течение последнего дня или около того, много видео на YouTube и поисковых запросов в Google позже, я все еще не нахожу ответов. Я никогда раньше не писал никакого кода, поэтому я знаю, что я над головой.
Я использую Excel 2013 на ноутбуке с Windows 8.
Я пытаюсь создать базовый калькулятор, в который пользователь вводит значения, выбирает calculate, и он выдает результаты, которые кто-то может вручную записать в журнал. У меня есть формулы и вычисления в электронной таблице Excel, но я хочу что-то более профессиональное, чем это.
Все данные слева (сухой вес, поступление топлива, расход топлива, время запуска двигателя, время запуска и время посадки) вводятся пользователем. Все данные справа (стартовый вес, посадочный вес, время работы двигателя, время полета, расход топлива, расход топлива) необходимо рассчитать на основе значений, введенных слева.
Я смог выяснить, как выполнять функции calculate, reset и quit для этих кнопок, и даже выяснил, как рассчитать стартовый вес, посадочный вес и потребляемое топливо. Мне трудно найти код для вычисления времени.
Пока что вот код, который у меня есть —
Private Sub CalculateButton_Click()
LaunchWeightCalculation = Val(DryWeightEntry.Value) Val(FuelInEntry)
LandingWeightCalculation = Val(DryWeightEntry.Value) Val(FuelOutEntry)
FuelConsumedCalculation = Val(FuelInEntry.Value) - Val(FuelOutEntry)
End Sub
Private Sub QuitButton_Click()
Calculator.Hide
End Sub
Private Sub ResetButton_Click()
Unload Calculator
Calculator.Show
End Sub
Private Sub UserForm_Click()
End Sub
Вот все мои имена полей ввода —
DryWeightEntry
Заправка топливом
FuelOutEntry
EngineStartTimeEntry
LaunchTimeEntry
LandTimeEntry
Вычисление веса запуска
Вычисление веса приземления
EngineRunTimeCalculation
Вычисление времени полета
Расчет расхода топлива
Расчет расхода топлива
Я хочу, чтобы время запуска двигателя, время запуска и время посадки автоматически заполнялись в формате HH: MM при вводе в формат 1234.
Вот коды, с которыми у меня возникают проблемы в VBA — EngineRunTimeCalculation = LaunchTimeEntry минус EngineStartTimeEntry FlightTimeCalculation = LandTimeEntry минус LaunchTimeEntry
Мне также нужно, чтобы он функционировал так, чтобы, если в поле «Горячее топливо / отрегулированное топливо» установлен флажок «При запуске», он вычислял его иначе, чем если бы это было не так.
Если установлен флажок — расчет расхода топлива = расчет расхода топлива, деленный на расчет времени полета Если не установлен флажок — Расчет расхода топлива = расчет расхода топлива, деленный на расчет времени полета
Я узнал, как сделать это модулем, чтобы пользователь открывал электронную таблицу Excel, а затем нажимал на кнопку, и появлялась эта пользовательская форма. Есть ли способ заставить его автоматически всплывать при открытии файла? Мне не нужно записывать или сохранять какие-либо введенные даты, мы вручную регистрируем результаты в наших личных журналах, это просто кратчайший путь к получению ответов, а не к ручному вычислению всего этого (и позволяет избежать ошибок пользователя).
Если кто-нибудь сможет мне помочь, я верну услугу в виде сувенира от нашего летного экипажа, базирующегося в Афганистане.
Спасибо за ваше время и дайте мне знать, если вам понадобится что-нибудь еще. Как я уже сказал, я думаю, что я над головой и устал часами искать ответы.
DTB
Комментарии:
1. Трудно прочитать / понять некоторые из ваших вопросов (формат и формулировка). Возможно, будет легче читать, если вы разделите их более четко. В вашем первом вопросе, связанном с «HH: MM», похоже, не хватает информации. Ваш последний вопрос самый ясный — ответ на него — подраздел «On_Open ()»
Ответ №1:
С этим вопросом многое связано, поэтому я опубликую ответы и вопросы, которые у меня есть, для как можно большего числа, и попытаюсь вернуться назад и отредактировать ответ. Я считаю, что этот вопрос может потребовать перезаписи.
1: Я хочу, чтобы время запуска двигателя, время запуска и время приземления автоматически заполнялись в формате HH: MM при вводе в формате 1234.
Используйте элемент управления выбора даты и времени по ссылке ниже, затем Вставьте> Дополнительные элементы управления> Средство выбора даты и времени Microsoft 6.0. Он читается легко и более управляемо, чем текстовое поле. Вам нужно будет настроить свойство Format элемента управления в соответствии с выводом, который вам нравится.
Используйте эту ссылку для получения инструкции по установке
social.technet.microsoft.com/Forums/office/en-US/0d3642b9-4e97-4fb5-9f75-2d1b7477a278/missing-microsoft-date-and-time-picker
http://activex.microsoft.com/controls/vb6/MSCOMCT2.cab
2: EngineRunTimeCalculation = LaunchTimeEntry минус EngineStartTimeEntry; FlightTimeCalculation = LandTimeEntry минус LaunchTimeEntry
Вы упоминаете проблему, связано ли это с предыдущей проблемой форматирования?
3: Мне также нужно, чтобы он функционировал так, чтобы, если установлено значение «Горячее топливо / скорректированное топливо» в поле «При запуске», оно вычисляет его иначе, чем если бы это было не так.
Для достижения этой цели вы должны использовать оператор If с кнопкой OptionButton в вашем модуле командной кнопки
If OptionButton1 = False then
FuelBurnCalculation = FuelConsumedCalculation / FlightTimeCalculation
Else 'The optionbutton1 is on
FuelBurnCalculation = FuelConsumedCalculation / EngineRunTimeCalculation
End If
Я узнал, как сделать это модулем, чтобы пользователь открывал
электронную таблицу Excel, а затем нажимал на кнопку, и появлялась эта пользовательская форма. Есть
ли способ заставить его автоматически всплывать при открытии файла?
Вас интересует модуль событий рабочего листа. Я бы посоветовал посетить
http://www.ozgrid.com/forum / и mrexcel точка com
Оба имеют отличные ресурсы.
Private Sub Worksheet_Activate()
YourUserFormNameHere
End Sub
Дайте мне знать, если это то, что вам нужно.