Как сохранить координаты ячейки в переменную? - PullRequest
0 голосов
/ 24 сентября 2019

, поэтому я хочу скопировать значения из Range, но вместо использования Range, такого как B1: B15, я бы хотел сохранить адрес B1 в переменной и адрес B15 в другой переменной

ActiveSheet.Range("B1:B15, D1:D15, F1:AJ15").Copy

B1 должно быть Cells(1,2), а B15 должно быть Cells(15,2).

B1 - статическая переменная, которая никогда не изменяется.

B15 - моя последняя строка на рабочем листе, а число 15 я получил с помощью функции:

Cells(Rows.Count, 1).End(xlUp).Row

Ответы [ 2 ]

2 голосов
/ 24 сентября 2019

Я бы сделал это для B1 и B15:

Option Explicit
Sub Test()

    With ThisWorkbook.Sheets("MySheet") 'change MySheet for your sheet name
        Dim MyRange As Range
        Set MyRange = .Cells(1, 2) 'This is your constant

        Dim LastCell As Range
        Set LastCell = .Cells(.rows.count, "B").End(xlUp)
    End With

End Sub

Редактировать:

Для того, что вы спрашиваете в комментарии, код будет такой:

Option Explicit
Sub Test()

    With ThisWorkbook.Sheets("MySheet") 'change MySheet for your sheet name
        Dim lrow As Long
        lrow = .Cells(.Rows.Count, "B").End(xlUp).Row
        .Range("B1:B" & lrow & ",D1:D" & lrow & ",F1:AJ" & lrow).Copy
    End With

End Sub

если вам нужно несколько столбцов, вам нужно указать диапазон, например "A1, C1, H1".Одна строковая запятая разделяет все ваши диапазоны, поэтому вам нужно объединить переменную, проверяя последнюю строку в этой строке.

1 голос
/ 24 сентября 2019

Вслед за этим методом:

Sub Test()

Dim x As Long
With Sheet1'Change accordingly
    x = .Cells(.Rows.Count, 1).End(xlUp).Row
    .Range(Replace("B1:B?,D1:D?,F1:AJ?", "?", x)).Copy
End With

End Sub

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

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