簡體   English   中英

如何在Excel VBA中計算員工的計費時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM