Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将员工姓名与主列表进行比较_Vba_Excel_Excel 2013 - Fatal编程技术网

Vba 将员工姓名与主列表进行比较

Vba 将员工姓名与主列表进行比较,vba,excel,excel-2013,Vba,Excel,Excel 2013,我将一份员工名单与一份总名单进行比较,并进行计数。这是应该的,但现在我需要添加一个警告,从计数中忽略某些员工的姓名(如经理、主管、经理、主管) 收到的列表在A列中有位置,名称在C列中-因此我需要从计数中忽略上面数组中存在于C列中的名称 。。。 这就是我用来返回计数->如何修改它以忽略上面列出的名称数组 Const shLookup As String = "Master List" Const shSetup As String = "Received" With Worksheets(shL

我将一份员工名单与一份总名单进行比较,并进行计数。这是应该的,但现在我需要添加一个警告,从计数中忽略某些员工的姓名(如
经理、主管、经理、主管

收到的列表在A列中有位置,名称在C列中-因此我需要从计数中忽略上面数组中存在于C列中的名称

。。。 这就是我用来返回计数->如何修改它以忽略上面列出的名称数组

Const shLookup As String = "Master List"
Const shSetup As String = "Received"

With Worksheets(shLookup)
aData = .Range("a1").CurrentRegion
End With
ReDim aOutput(1 To UBound(aData), 1 To 3)
For i = 2 To UBound(aData)
iCount = Evaluate("=COUNTIF('" & shSetup & "'!A:A,'" & shLookup & "'!A" & i & ")")
If aData(i, 2) <> iCount Then
    n = n + 1
    aOutput(n, 1) = aData(i, 1)
    aOutput(n, 2) = aData(i, 2)
    aOutput(n, 3) = iCount
End If
Next
我想要的是确保在收到的名单上有23名孟菲斯员工,不包括上述人员

编辑2
根据@PKatona评论中的建议-看起来我可以使用
CountIF()
函数计算“忽略”值,然后从我的整个计数中减去该计数。这种语法似乎可以一个接一个地使用,但是,如何将其调整为数组呢

也就是说,这将为我提供
Manager
的计数,但我还需要搜索其他热门词汇:

iIgnore = Evaluate("=COUNTIF(Range('" & shSetup & "'!A:A,'" & shLookup & "'!A" & i & "),"Manager")")

在没有语法检查的情况下,下面是如何创建ignore值数组并对其进行计数:

dim ignore() as String
ignore = Split("Manager,Supervisor,Mgr,Sup", ",")
dim ignoreCnt as integer
ignoreCnt = 0
dim aIdx as integer

for aIdx = 0 to UBound(ignore) - 1
    ignoreCnt = ignoreCnt + Evaluate("=COUNTIF(Range('" & shSetup & _
          "'!A:A,'" & shLookup & "'!A" & i & "),ignore(aIdx))")
next aIdx

ignoreCnt现在具有要忽略的值的总数。如果您有更多数据,只需将它们添加到拆分行中的字符串中,UBound函数将自动获取循环的上限。

您能给我们一个列的示例表吗?@CLR-更新以显示示例数据。添加“CountIf”命令来计算您不需要的值,然后从iCount中减去该值如何?类似于iCount=iCount-Evaluate(CountIf(…)。@PKatona-不确定如何在我的语法中实现它。例子?
dim ignore() as String
ignore = Split("Manager,Supervisor,Mgr,Sup", ",")
dim ignoreCnt as integer
ignoreCnt = 0
dim aIdx as integer

for aIdx = 0 to UBound(ignore) - 1
    ignoreCnt = ignoreCnt + Evaluate("=COUNTIF(Range('" & shSetup & _
          "'!A:A,'" & shLookup & "'!A" & i & "),ignore(aIdx))")
next aIdx