Помощь в завершении кода VBA для пользовательской формы в Excel

#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
 

Дайте мне знать, если это то, что вам нужно.