Sub Coinside()
Dim Shr, Cel1, CelN, CelEq, ValEq As String
Dim OutCount, OutMax, OutName, OutMsg As String
Dim NCol, iMCount, Col1, TCount, iMax, i As Integer
Dim R, iR As Range
She = "Лист1" ' Имя листа
Cel1 = "A2" ' Начальная ячейка с данными
NCol = 3 ' Число колонок с данными
CelEq = "C3" ' Ячейка с эталонным содержимым
OutCount = "E5" ' Ячейка куда поместим количество совпадений с эталонным содержимым
OutMax = "E6" ' Ячейка куда поместим имя столбца, в котором эталон встречается чаще
Sheets(She).Select
CelN = Range("A2").End(xlDown).Address
CelN = Range(CelN).Offset(0, NCol - 1).Address
ValEq = Range(CelEq).Value
Set R = Range(Cel1 + ":" + CelN)
ReDim MCount(NCol - 1) As Integer
For iMCount = 0 To NCol - 1
MCount(iMCount) = 0
Next
Col1 = Range(Cel1).Column
For Each iR In R
With iR
If ValEq = .Value Then
.Interior.Color = 49407
iMCount = .Column - Col1
MCount(iMCount) = MCount(iMCount) + 1
Else
.Interior.Pattern = xlNone
End If
End With
Next
TCount = 0
iMax = 0
OutMsg = ""
For iMCount = 0 To NCol - 1
TCount = TCount + MCount(iMCount)
If MCount(iMCount) > MCount(iMax) Then iMax = iMCount
Next
Range(OutCount) = TCount
For iMCount = 0 To NCol - 1
OutName = Range(Cel1).Offset(0, iMCount).Address
For i = 0 To 10
OutName = Replace(OutName, CStr(i), "")
Next
OutName = Replace(OutName, "$", "")
OutMsg = OutMsg + vbCrLf + "В колонке: """ + OutName + """ найдено: " + vbTab + CStr(MCount(iMCount))
If MCount(iMCount) = MCount(iMax) Then
OutMsg = OutMsg + " (максимум)"
Range(OutMax) = OutName
End If
Next
OutMsg = "В ячейке:" + vbTab + vbTab + vbTab + """" + CelEq + """" + vbCrLf + _
"Имеется значение:" + vbTab + vbTab + """" + ValEq + """" + vbCrLf + vbCrLf + _
"В диапазоне ячеек: " + vbTab + vbTab + """" + Cel1 + ":" + Replace(CelN, "$", "") + """" + vbCrLf + _
"Найдено совпадений: " + vbTab + CStr(TCount) + vbCrLf + _
OutMsg
MsgBox OutMsg
End Sub
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.