Установить именованный диапазон из выбранных ячеек - PullRequest
0 голосов
/ 25 октября 2019

Я должен установить именованный диапазон для последних 2 строк с содержимым в них на определенном листе. Я могу выбрать эти 2 строки с содержимым, в котором я нуждаюсь, но не могу установить именованный диапазон из выбранных ячеек. Мне было интересно, есть ли способ установить именованный диапазон из выбранных ячеек.

Я пытался записать макрос и адаптировать его под свои нужды, но не могу этого сделать. А также пробуя код ниже, используя ссылки на ячейки. Но это должно выполняться для большого количества файлов, и разные файлы будут иметь разные нижние строки.

Sub LastCell()

Dim MyNamedRng As Range

'Select Worksheet
Worksheets("Sheet1").Activate

'Select Last Used Cell In The Worksheet
 Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Select

'Select Cell Above Last + All To The Left
    Range(Selection, Selection.Offset(-1, 0)).Select
    Range(Selection, Selection.End(xlToLeft)).Select

'Create Named Range
    Set MyNamedRng = Sheets("Sheet1").Range("a3:gk4")
      Names.Add Name:="KeyData", RefersTo:=MyNamedRng

 End Sub

1 Ответ

0 голосов
/ 25 октября 2019

Это найдет последний использованный столбец в соответствующих строках.

Sub LastCell()

Dim r1 As Range, r2 As Range

Worksheets("Sheet1").Activate

Set r1 = Cells.Find(What:="*", After:=[A1],SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
If Not r1 Is Nothing Then
    If r1.Row > 1 Then
        Set r2 = r1.offset(-1).resize(2).Entirerow.Find(What:="*", After:=Cells(r1.Row, 1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
        'Use line below if last used column is not in the named range
        'Set r2 = Cells.Find(What:="*", After:=Cells(r1.Row, 1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
        Range(Cells(r1.Row - 1, "A"), Cells(r1.Row, r2.Column)).Name = "KeyData"
    End If
End If

End Sub

Чтение это для опасностей использования Select.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...