У меня есть следующий код, который проходит через таблицу.Когда он находит слово «Отчетность» в столбце C и «OSI» в столбце B, он создает диапазон с именем «OSIRep», идущий от столбца DEF для каждой строки, где критерии в столбцах B и C являются истинными.
Set sht = ThisWorkbook.Worksheets("Features")
'Reporting and OSI
Set featuresRng = sht.Range(sht.Range("B1"), sht.Range("C" & sht.Rows.Count).End(xlUp))
rngArray = featuresRng
ReDim NewArr(1 To 1)
y = 1
For i = 1 To UBound(rngArray)
If rngArray(i, 2) = "Reporting" And rngArray(i, 1) = "OSI" Then
ReDim Preserve NewArr(1 To y)
NewArr(y) = featuresRng.Rows(i).Resize(1, 3).Offset(0, 2).Address
y = y + 1
End If
Next i
sRng = Join(NewArr, Application.DecimalSeparator)
ThisWorkbook.Names.Add "OSIRep", sht.Range(sRng)
Однако у меня есть две проблемы с этим: 1- Когда я изменяю слово на «Безопасность» и «OSI», чтобы создать диапазон «OSISec», я получаю сообщение об ошибке и незнаю, почему.Ошибка «Ошибка во время выполнения 1004 - Метод« Диапазон »объекта» _Worksheet «Сбой», и это происходит на sht.Range (sRng)
Диапазон, в котором он ищет, ничем не отличается и имя Iпытаюсь создать еще не существует.Есть идеи?
2- Когда я изменяю строки на «Отчетность» и «Поиск и фильтр», код создает диапазон, в котором любые ячейки, содержащие слова «Поиск» или «и» или «Фильтр», включаются вспектр.Как мне найти ТОЧНУЮ строку?Я полагаю, он использует Find и xlwhole?Я не уверен, как использовать это, хотя?
Я пытался взять защиту листа, разблокировать ячейки и исследовать код ошибки, но все безрезультатно.
Заранее благодарим за любую помощь или понимание, которое вы можете предоставить!Я ценю, что я начинающий, поэтому любая помощь очень ценится.