У меня есть трекер на моей работе, который извлекает информацию из отчета, затем информацию необходимо извлекать для каждого пользователя с именованным диапазоном.Делать это вручную - долгий и утомительный процесс - мне было интересно, есть ли способ заставить его автоматически генерировать именованные диапазоны на основе значений между двумя ячейками в столбце A.
Значения в столбце A делаютизменить и не нумеруются (но они всегда следуют одному и тому же формату).Так что в идеале это будет просто поиск следующей непустой ячейки.
Код ниже - это то, что используется для генерации именованного диапазона, но мне было интересно, можно ли было предварительно заполнить USER1, USER2, RANGE_NAME_USER1и т.д. на основе следующей непустой ячейки, чтобы она генерировала все необходимые диапазоны.
Так что, как только это будет сделано с USER1, тогда это будут USER2, USER3, RANGE_NAME_USER2 и т. Д.измените значения «USER1», «USER2», чтобы автоматически знать, что делать.
Sub SelectBetween()
Dim findrow As Long, findrow2 As Long
On Error GoTo errhandler
findrow = Range("A:A").Find("USER1", Range("A1")).Row
findrow2 = Range("A:A").Find("USER2", Range("A" & findrow)).Row
Range("B" & findrow + 1 & ":Q" & findrow2 - 1).Select
Selection.Name = "RANGE_NAME_USER1"
errhandler:
Exit Sub
MsgBox "Can't find the cells! Please check!"
End Sub
Идея состоит в том, что, как только он найдет USER1 и выделит ему именованный диапазон, он будет повторять код, но будетпохоже на:
Sub SelectBetween()
Dim findrow As Long, findrow2 As Long
On Error GoTo errhandler
findrow = Range("A:A").Find("USER2", Range("A1")).Row
findrow2 = Range("A:A").Find("USER3", Range("A" & findrow)).Row
Range("B" & findrow + 1 & ":Q" & findrow2 - 1).Select
Selection.Name = "RANGE_NAME_USER2"
errhandler:
Exit Sub
MsgBox "Can't find the cells! Please check!"
End Sub
Возможно ли это?Спасибо!