我不确定如何解释这个,因为我不知道如何执行它,因为计划/想法主要在我脑海中,但我会尝试(评论问题!) :
我有一张表格列出了" my"公司犯了一个错误,哪种类型的错误,以及每个财政月份部门中有多少特定错误。 (见附件)。
我想编写一个宏,它会累计每个部门的错误总数(E列)(D列)(月份或错误类型不是此宏的一个因素)。我一直在尝试使用vlookup对数组/ For Next循环进行条目数量,但是没有用,因为我没有足够的数组经验。有任何想法吗?这就是我的开始:
Option Explicit
Option Base 1
Sub Total_Errors()
Dim Assembly() As Double, CSR() As Double
'... more dept names
Dim i As Integer, RowCount As Integer
RowCount = Range("D" & Rows.Count).End(xlUp).Row
ReDim Assembly(1 To RowCount) As Double, CSR(1 To RowCount) As Double
' ... more redimmed dept names
Assembly(i) = Application.WorksheetFunction.VLookup("Assembly", Range(Range("D" & i + 1), Range("E" & RowCount)), 2, False)
Range("H2").Value = Assembly(i)
For i = 2 To RowCount
Assembly(i) = Application.WorksheetFunction.VLookup("Assembly", Range(Range("D" & i + 1), Range("E" & RowCount)), 2, False)
Range("H2").Value = Assembly(i - 1) + Assembly(i)
Next i
End Sub
不幸的是,它只会按照我的说法进行,只会将之前的值添加到当前值:p funny如何工作。无论如何,我希望在这段代码中发生的事情是,它只是将一个值添加到单元格中的先前值。添加方法似乎更多地涉及到我试图做的事情。 欢迎所有建议,并提前致谢!
答案 0 :(得分:0)
无需VBA即可轻松解决问题。只需尝试工作表函数SUMIF。进入
=SUMIF(D:D; D1; E:E)
在单元格F1中,将此公式复制到F列中的每个单元格中,可以获得每行中部门的错误数。
然后,您可以将行D和F作为值复制到新工作表中,并应用“删除重复项”功能来创建具有各自错误计数的唯一部门列表。
答案 1 :(得分:0)
得到了;它简单得多,我认为它是哈哈。不管怎样,谢谢:)
Sub TotalErrors()
Dim Assembly As Single, CSR As Single, Customer As Single, Drums As Single
' ... more departments
Dim i As Integer, RowCount As Integer
RowCount = Range("D" & Rows.Count).End(xlUp).Row
For i = 1 To RowCount
If Range("D" & i).Value = "Assembly" Then
Assembly = Range("H2").Value + Range("E" & i).Value
Range("H2").Value = Assembly
ElseIf Range("D" & i).Value = "CSR" Then
CSR = Range("H3").Value + Range("E" & i).Value
Range("H3").Value = CSR
ElseIf Range("D" & i).Value = "Customer" Then
Customer = Range("H4").Value + Range("E" & i).Value
Range("H4").Value = Customer
ElseIf Range("D" & i).Value = "Drums" Then
Drums = Range("H5").Value + Range("E" & i).Value
Range("H5").Value = Drums
' ... more departments
End If
Next i
End Sub