У меня есть набор данных, шириной 10 столбцов, с постоянно растущим числом строк.
В столбце C у меня есть набор функций, например, «Поиск», которому будет соответствовать несколько строк; «Фильтр», которому будет соответствовать несколько строк и т. Д. Однако они могут быть в любом порядке, поэтому я мог бы иметь некоторые функции «Поиск», а затем некоторые функции «Фильтр», а затем еще некоторые функции «Поиск» ...
Мне нужно создать именованный диапазон для выбранных ячеек в столбцах D: F, где значение в C - это функция, которая мне нужна. Это может быть, например, именованный диапазон с именем «T1», который начинается с D3:F6
и, возможно, D71:F71
для всех функций «Поиск», но не для функций «Фильтр».
Я попытался использовать смещение и счет в диспетчере имен. Но в идеале мне нужно использовать VBA в моем уже существующем макросе, поэтому мне не нужно заходить и менять именованные диапазоны каждый раз, когда добавляется новая строка.
В идеале код был бы похож на ...
Если в столбце C содержится слово «Фильтр», создайте именованный диапазон для трех столбцов справа от него, каждый раз, когда появляется слово «Фильтр».
Я использовал Offset and Count в менеджере имен:
=OFFSET(Features!$D$3, 0, 0, COUNTA(Features!$D$3:$D$9), COUNTA(Features!$D$3:$F$3))
Sub mySub()
Dim Features As Worksheet
Dim myNamedRange As Range
Dim myRangeName As String
Set Features = ThisWorkbook.Worksheets("Search")
If Range.("C") is "Search"
Set mRangeName= myWorksheet.Range("D:F")
myRangeName = "Search"
ThisWorkbook.Names.Add Name:=Search, RefersTo:=myNamedRange
End Sub
Любая помощь будет принята с благодарностью. Надеюсь, я достаточно прояснил проблему.