在Excel中帮助完成用户表单的VBA代码

我对整个用户表单和VBA是一个新东西,但一直试图弄清楚如何在最后一天左右做一个,之后有很多YouTubevideo和Googlesearch,但我仍然没有find答案。 我从来没有写过任何代码,所以我知道我已经在我的脑海里了。

我在Windows 8笔记本电脑上使用Excel 2013。

我试图build立一个用户input值的基本计算器,select计算,它产生的结果为某人手写日志。 我有一个Excel电子表格中的公式和计算,但是我想要一些比这更专业的东西。

左侧的所有数据(干重,燃油input,燃油输出,发动机起动时间,起动时间和着陆时间)由用户input。 右侧的所有数据(起飞重量,着陆重量,发动机运行时间,飞行时间,耗油量,燃油燃烧)都需要从左侧input的值中计算出来。

我能够find如何做这些button的计算,重置和退出function,甚至已经计算出如何计算发射重量,着陆重量和耗油量。 我很难find代码来计算时间。

到目前为止,这里是我有的代码 –

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 

这里是我所有的input框名称 – DryWeightEntry FuelInEntry FuelOutEntry EngineStartTimeEntry LaunchTimeEntry LandTimeEntry LaunchWeightCalculation LandingWeightCalculation EngineRunTimeCalculation FlightTimeCalculation FuelConsumedCalculation FuelBurnCalculation

我希望在引擎1234格式时,引擎启动时间,启动时间和着陆时间自动填充为HH:MM格式。

这里是我在VBA中遇到的代码 – EngineRunTimeCalculation = LaunchTimeEntry减去EngineStartTimeEntry FlightTimeCalculation = LandTimeEntry减去LaunchTimeEntry

我也需要它的function,所以如果在启动框中的热燃料/调整燃料被检查,它将计算出不同的结果。

如果选中 – FuelBurnCalculation = FuelConsumedCalculation除以FlightTimeCalculation如果未检查 – FuelBurnCalculation = FuelConsumedCalculation除以EngineRunTimeCalculation

我学会了如何使这个模块,以便用户打开Excel电子表格,然后点击一个button,这个用户窗体popup。 有没有办法让它打开文件时自动popup? 我不需要logging或保存任何dateinput,我们手动将结果logging在我们的个人日志中,这只是获取答案的捷径,而不是手动计算(避免用户错误)。

如果有人能帮助我,我会以我们在阿富汗的飞行机组人员的纪念品的forms归还。

谢谢你的时间,让我知道如果你需要别的东西。 就像我说的,我觉得我已经厌倦了花时间寻找答案。

DTB

这个问题有很多事情要做,所以我会尽可能多地发表我的答案和问题,并且会尝试回答并编辑答案。 我相信这个问题可能需要重写。

1:当input1234格式时,我希望引擎启动时间,启动时间和陆地时间自动填充为HH:MM格式。

从下面的链接使用date时间select器控件,然后插入>更多控件> Microsoftdate和时间选取器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 minus EngineStartTimeEntry; FlightTimeCalculation = LandTimeEntry减去LaunchTimeEntry

你提到一个问题,这是关系到以前的格式问题?

3:我也需要它的function,所以如果在启动框中的热燃料/调整的燃料被检查,它将计算它不同于否。

你应该在你的命令button单击模块中使用If语句和一个OptionButton来实现这一点

 If OptionButton1 = False then FuelBurnCalculation = FuelConsumedCalculation / FlightTimeCalculation Else 'The optionbutton1 is on FuelBurnCalculation = FuelConsumedCalculation / EngineRunTimeCalculation End If 

我学会了如何使这个模块,以便用户打开Excel电子表格,然后点击一个button,这个用户窗体popup。 有没有办法让它打开文件时自动popup?

您对工作表事件模块感兴趣。 我会鼓励参观

http://www.ozgrid.com/forum/和mrexcel dot com

两者都有优秀的资源。

 Private Sub Worksheet_Activate() YourUserFormNameHere End Sub 

让我知道,如果这是你所需要的。