Я пытаюсь подсчитать количество ячеек, содержащих определенное значение («N») в определенную строку, которая содержит определенное слово («Эй»).Подсчитайте количество ячеек, содержащих определенное значение («N») в определенной строке, которая содержит определенное слово («Привет»)
Он подходит для первого листа, но не работает для следующего листа. Примечание: «Эй» всегда во втором столбце, однако положение не фиксировано
Вот что я пробовал:
Private Sub macro1()
Dim SearchString As String
Dim far As Range
Dim sh As Worksheet
Dim c As Integer, count As Integer, i As Integer
c = 0
count = 0
SearchString = "Hey"
Application.FindFormat.Clear
For Each sh In ActiveWorkbook.Worksheets
sh.Select
Range("B1:B100").Select
Set far = Cells.Find(What:=SearchString, _
After:=sh.Cells(1, 1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=True, _
SearchFormat:=False)
If Not far Is Nothing Then
Application.Goto far
For i = 3 To 23
c = Application.WorksheetFunction.CountIf(Cells(ActiveCell.Row, i), "N")
If c Then
count = count + 1
End If
Next i
End If
Next
MsgBox ("Count= " & count)
End Sub
Хорошо, на самом деле я намеренно использовал xlWhole, потому что я ищу «Эй» в одиночку, а не как часть. –
И я не знал о countif и благодарю вас за удаление ненужных отборов. –