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

在Excel中辅助完成用户表单的VBA代码,excel,forms,vba,Excel,Forms,Vba,我对所有的用户表单和VBA都不熟悉,但在过去的一天左右,我一直在想怎么做,后来很多YouTube视频和谷歌搜索,我仍然没有找到答案。我以前从来没有写过任何代码,所以我知道我有点不知所措 我正在Windows 8笔记本电脑上使用Excel 2013 我试图建立一个基本的计算器,用户输入值,选择calculate并生成结果,供用户手工写入日志。我有Excel电子表格中的公式和计算,但我想要比这更专业的东西 左侧的所有数据(干重、进油、出油、发动机启动时间、启动时间和着陆时间)由用户输入。 右侧的所有

我对所有的用户表单和VBA都不熟悉,但在过去的一天左右,我一直在想怎么做,后来很多YouTube视频和谷歌搜索,我仍然没有找到答案。我以前从来没有写过任何代码,所以我知道我有点不知所措

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

我试图建立一个基本的计算器,用户输入值,选择calculate并生成结果,供用户手工写入日志。我有Excel电子表格中的公式和计算,但我想要比这更专业的东西

左侧的所有数据(干重、进油、出油、发动机启动时间、启动时间和着陆时间)由用户输入。 右侧的所有数据(发射重量、着陆重量、发动机运行时间、飞行时间、耗油量、燃油消耗量)都需要根据左侧输入的值进行计算

我能够找到如何为这些按钮执行计算、重置和退出功能,甚至知道如何计算发射重量、着陆重量和耗油量。我很难找到计算时间的代码

到目前为止,这是我的代码-

Private Sub CalculateButton_Click()
LaunchWeightCalculation = Val(DryWeightEntry.Value) + Val(FuelInEntry)
LandingWeightCalculation = Val(DryWeightEntry.Value) + Val(FuelOutEntry)
FuelConsumedCalculation = Val(FuelInEntry.Value) - Val(FuelOutEntry)

End Sub



这是我所有的输入框名称- 干重输入 燃料大陆 燃料外流 EngineStartTimeEntry LaunchTimeEntry 登陆 发射重量计算 着陆重量计算 发动机阻力计算 飞行时间计算 燃料消耗计算 燃料燃烧计算

我希望发动机启动时间、启动时间和着陆时间在输入1234格式时自动填充为HH:MM格式

以下是我在VBA中遇到问题的代码- EngineRunTimeCalculation=LaunchTimeEntry减去EngineStartTimeEntry FlightTimeCalculation=LandTimeEntry减去LaunchTimeEntry

我还需要它发挥作用,以便如果在发射箱中选择了热燃料/调整燃料,则计算结果与未选择不同

如果选中-FuelBurnCalculation=FuelConsumedCalculation除以FlightTimeCalculation 如果未选中-FuelBurnCalculation=FuelConsumedCalculation除以EngineerUntimeCalculation

我学习了如何将其作为一个模块,以便用户打开excel电子表格,然后单击按钮,弹出此用户表单。有没有办法让它在他们打开文件时自动弹出?我不需要记录或保留任何输入的日期,我们手动将结果记录在个人日志中,这只是获取答案的快捷方式,而不是手动计算(并避免用户错误)

如果有人能帮助我,我将以我们在阿富汗的机组人员的纪念品的形式回报他们

谢谢你的时间,如果你还需要什么,请告诉我。就像我说的,我想我已经不知所措,厌倦了花几个小时寻找答案


DTB

这个问题有很多事情要做,因此我将尽可能多地发布我的答案和问题,并尝试返回并编辑答案。我认为这个问题可能需要重写

1:我想知道发动机的启动时间、启动时间和着陆时间 输入1234格式时自动填充为HH:MM格式

使用下面链接中的日期时间选择器控件,然后插入>更多控件>Microsoft日期和时间选择器6.0。它比文本框更容易阅读和控制。您必须将控件的Format属性调整为您喜欢的输出

使用此链接获取安装说明

social.technet.microsoft.com/Forums/office/en-US/0d3642b9-4e97-4fb5-9f75-2d1b7477a278/missing-microsoft-date-and-time-picker

2:EngineRunTimeCalculation=启动时间条目减去 EngineStartTimeEntry;FlightTimeCalculation=LandTimeEntry减去LaunchTimeEntry

您提到了一个问题,这与上一个格式问题有关吗

3:我还需要它的功能,以便如果热燃油/调整燃油 在“启动时”框中,它的计算结果与未选中时不同

您应该在命令按钮单击模块中使用带有OptionButton的If语句来完成此操作

If OptionButton1 = False then

FuelBurnCalculation = FuelConsumedCalculation / FlightTimeCalculation

Else 'The optionbutton1 is on

FuelBurnCalculation = FuelConsumedCalculation / EngineRunTimeCalculation

End If
我学习了如何将其作为一个模块,以便用户打开excel 电子表格,然后点击一个按钮,这个用户表单弹出。是 有没有办法在他们打开文件时自动弹出

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

以及mrexcel.com

两者都有极好的资源

Private Sub Worksheet_Activate() 
 YourUserFormNameHere
End Sub

如果这是您需要的,请告诉我。

您的一些问题(格式和措辞)很难阅读/理解。如果你能更清楚地把它们分开,可能会更容易阅读。你关于“HH:MM”的第一个问题似乎缺乏信息。你的最后一个问题是最清楚的——答案是“On_Open()”子问题
Private Sub UserForm_Click()

End Sub
If OptionButton1 = False then

FuelBurnCalculation = FuelConsumedCalculation / FlightTimeCalculation

Else 'The optionbutton1 is on

FuelBurnCalculation = FuelConsumedCalculation / EngineRunTimeCalculation

End If
Private Sub Worksheet_Activate() 
 YourUserFormNameHere
End Sub