我有一张6张Excel的Excel工作簿。表1是其他5张表的摘要。所以基本上我需要将第2页 - 表6中输入的数据自动化到表1中。
在每张纸上,我只需要获得符合特定标准的值的计数。
例如:
在Sheet2中,我只需要在" G"列有文字"是"和" H"列有文字" NA"和" K"列包含文字" Tablet"。
此计数应放在" AG9"下的表1中。细胞。我必须为许多专栏做同样的任务。
我已经尝试了以下代码,它在查找单个文本和单列更新时工作正常。但这对多个文本没有帮助。
Sub WBR()
Dim s As String
Dim r As Range
Dim wf As WorksheetFunction
Dim xlSheet As Worksheet
Set xlSheet = ActiveWorkbook.Worksheets("Latency") 'sets the worksheet
Set wf = Application.WorksheetFunction
Set r = xlSheet.Range("O:O") 'sets the range to search
s = "Pass"
[AE4] = wf.CountIf(r, s)
s = "Pass" & "Fail"
[AE3] = wf.CountIf(r, s)
s = "Fail"
[AE5] = wf.CountIf(r, s)
End Sub
答案 0 :(得分:0)
请查看答案。此代码将在存在值的工作簿中工作
Sub test1()
Dim wb As Workbook
Dim ws As Worksheet
Dim count As Integer
Set wb = ThisWorkbook
Set ws1 = wb.Worksheets("Sheet1")
Set ws2 = wb.Worksheets("Sheet2")
Set ws3 = wb.Worksheets("Sheet3")
Set ws4 = wb.Worksheets("Sheet4")
Set ws5 = wb.Worksheets("Sheet5")
Set ws6 = wb.Worksheets("Sheet6")
With Application.WorksheetFunction
count = .CountIf(ws2.Range("G:G"), "Yes") + _
.CountIf(ws2.Range("H:H"), "NA") + _
.CountIf(ws2.Range("K:K"), "Tablet")
End With
'"AG9" cell
ws1.Range("AG9").Value = count
End Sub
答案 1 :(得分:0)
您应该可以使用CountIfs
功能执行您想要的操作:
Sub WBR()
Dim s As String
Dim r As Range
Dim wf As WorksheetFunction
Dim xlSheet As Worksheet
Set xlSheet = ActiveWorkbook.Worksheets("Latency") 'sets the worksheet
Set wf = Application.WorksheetFunction
Set r = xlSheet.Range("O:O") 'sets the range to search
s = "Pass"
[AE4] = wf.CountIf(r, s)
s = "Pass" & "Fail"
[AE3] = wf.CountIf(r, s)
s = "Fail"
[AE5] = wf.CountIf(r, s)
With ActiveWorkbook.Worksheets("Sheet2")
[AG9] = wf.CountIfs(.Range("G:G"), "Yes", _
.Range("H:H"), "NA", _
.Range("K:K"), "Tablet")
End With
End Sub
我添加了一个With
广告块,因为我不想一直打字ActiveWorkbook.Worksheets("Sheet2").
,而且我不想创建三个Range
对象。