Поиск и выделение в таблице по нескольким параметрам - VBA
Формулировка задачи:
Ночи доброй!
возник следующий вопрос:
есть таблица(размерность может быть как увеличена, так и уменьшена)
можно ли вывести на экран менюшку в котороый можно будет задавать несколько параметров поиска?
к примеру в таблице надо найти все ячейки в которых встречаются сразу все эти критерии( П, Г, 234, МЗН)
кол-во параметров может варьироваться от 1го до ++
вбивать параметры нужно ручками в специальном окошке(менюшке), (и в любом порядке)
нужные ячейки будут подсвечиваться цветом к примеру "vbGreen"
Решение задачи: «Поиск и выделение в таблице по нескольким параметрам»
textual
Листинг программы
Sub wrkWITHmyCriteries() Dim mRng As Range, AllCells As Range, currCell As Range Dim mArr(), currKey, mVAR, i&, j& Dim dict As Object, SecDict As Object mArr = Array("aaa", "b#2c2", "345") Set dict = CreateObject("scripting.dictionary") dict.comparemode = 1 Set SecDict = CreateObject("scripting.dictionary") SecDict.comparemode = 1 For i = LBound(mArr) To UBound(mArr) dict.Add mArr(i), mArr(i) Next 'i For Each currKey In dict.Keys mVAR = dict.Item(currKey) If IsNumeric(mVAR) Then mVAR = CDbl(dict.Item(currKey)) End If With ActiveSheet Set mRng = .UsedRange For Each currCell In mRng If currCell.Value = mVAR Then If SecDict.exists(mVAR) Then SecDict.Item(mVAR).Add currCell.Address Else SecDict.Add mVAR, New Collection SecDict.Item(mVAR).Add _ currCell.Address End If End If Next ' currCell End With 'ActiveSheet For i = 1 To SecDict.Item(mVAR).count If AllCells Is Nothing Then Set AllCells = Range(SecDict.Item(mVAR)(i)) i = 2 End If Set AllCells = Union(AllCells, _ Range(SecDict.Item(mVAR)(i))) Next 'i Next ' currKey With AllCells .Interior.ColorIndex = 35 End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д