使用vba中的两个值进行计算

嗨林相对较新的VB,所以请原谅坏代码,

我想要的代码来计算升每小时使用。

用户表单要求用户input机器小时数和当天input机器的燃料量(需要升级)。 它还要求用户从combobox中select机器编号,也从combobox中select位置。

然后,它使用一个工作表来logging所有这些条目(工作表1),然后将工作表2中的信息更新为最新的信息。

在更新信息之前,我需要获取当前的小时数,并将其从当前新的小时数中除去,以便更新当前小时数。 所需的升数然后除以前一次计算的值。

然后我希望将这个值放入sheet2中的列L / P列中。

这是我目前的代码:

Private Sub btnupdate_Click() Dim row As Long 'next available row With Sheets("Sheet1") 'get the next avialable row in Sheet1 row = .Range("A" & .Rows.Count).End(xlUp).row + 1 'put the text box values in this row .Range("A" & row).Value = cmbplantno.Value .Range("B" & row).Value = Txthours.Value .Range("C" & row).Value = txtfuel.Value .Range("D" & row).Value = caldate.Value .Range("E" & row).Value = cmblocation.Value End With Dim TheLastRow As Long TheLastRow = Sheet1.UsedRange.SpecialCells(xlCellTypeLastCell).row Rows(TheLastRow).Select Selection.Copy ActiveWorkbook.Sheets("Sheet2").Activate Columns("A:A").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$A$63").AutoFilter Field:=1, Criteria1:=cmbplantno Range("A2:A63") = cmbplantno.Value Range("E2:E63") = Txthours.Value Range("F2:F63") = caldate.Value Range("M2:M63") = cmblocation.Value Range("N2:N63") = txtfuel.Value Rows("63:63").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("$A$1:$A$63").AutoFilter Field:=1 cmbplantno.Value = "" Txthours.Value = "" txtfuel.Value = "" cmblocation.Value = "" End Sub Sub FillCtrlUnique(myRange As Range, myControl As Control) Dim Coll As New Collection Dim var As Variant Dim cell As Range On Error Resume Next For Each cell In myRange Coll.Add Item:=cell.Value, Key:=CStr(cell.Value) Next cell On Error GoTo 0 With myControl .Clear For Each var In Coll .AddItem var Next var End With Set Coll = Nothing End Sub Private Sub UserForm_Initialize() Dim sRange As Range Set sRange = Range("E2:E62", Range("E63")) FillCtrlUnique sRange, Me.cmblocation With Worksheets("Sheet1") cmbplantno.List = .Range("A2:A62" & .Range("A" & .Rows.Count)).Value End With End Sub Private Sub UserForm_Terminate() ThisWorkbook.Close savechanges:=True Application.Quit End Sub 

编辑1:工作表示例

任何帮助,将不胜感激。 我会拉我的头发好几个星期,试图自己解决这个问题。