![](/img/trans.png)
[英]Excel VBA - How to calculate login/logout hours with different dates?
[英]How to calculate billing hours of employee in Excel VBA
我在工作簿中有兩張工作表,工作表 1 和工作表 2。在工作表 1 中,我有員工 ID 的列表:
在工作表 2 中,我有員工的賬單詳細信息,其中員工可以在不同類別中計費,他總共可以填寫 40 多個小時。
我想從工作表 2 中的工作表 1 EX:123 中搜索 EMPID。我們可以忽略員工記帳桶列中的不可開帳單,並將其余的記帳桶值相加。
此處 123 EMPID 總小時數 = 返回服務(24)+管理(8) =32 我已將其打印在工作表 1 中。總計費小時數列。
這是我的代碼:
Sub Billingreport()
Billing = 0
Dim rng As Range
Dim account As String
Dim rownumber As Long
Dim i As Integer
For i = 2 To 20
For j = i To 20
If Sheet1.Cells(1, 1) = Sheet2.Cells(j, 1) Then
'& sheet2(j,2)! = "Nonbillable"
Billing = Billing + Sheet2(j, 3).Value
Sheet1.Cells(i, 2).Value = Billing.Value
End If
Next j
Next i
End Sub
假設您的表格以相應工作表中的標題開頭,您只需在“B2”中輸入以下 SUMIFS 函數並將其復制下來
=SUMIFS(Sheet2!C:C,Sheet2!A:A,Sheet1!A2,Sheet2!B:B,"<>Nonbillable")
但是既然你問的是 VBA ..
Sub Macro2()
Sheets("Sheet1").Range("B2:B4").FormulaR1C1 = _
"=SUMIFS(Sheet2!C3:C3,Sheet2!C1:C1,RC[-1],Sheet2!C2:C2,""<>Nonbillable"")"
Worksheets("Sheet1").Calculate
'you can add the following line to convert the formula to value
Sheets("Sheet1").Range("B2:B4").Value = Sheets("Sheet1").Range("B2:B4").Value
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.