В Excel VBA, как мне компенсировать/изменить размер левого столбца диапазона на 1 меньше?Смещение/изменение размера на 1 меньше Столбец
Например, я начинаю с B1:D10
, и мне нужно в конечном итоге с C1:D10
.
В Excel VBA, как мне компенсировать/изменить размер левого столбца диапазона на 1 меньше?Смещение/изменение размера на 1 меньше Столбец
Например, я начинаю с B1:D10
, и мне нужно в конечном итоге с C1:D10
.
Dim rng As Range
...
Set rng = rng.Resize(rng.Rows.Count, rng.Columns.Count - 1).Offset(0, 1)
Дайте этому попытку:
Sub qwerty()
Dim r1 As Range, r2 As Range
Set r1 = Range("B1:D10")
Set r2 = Intersect(r1, r1.Offset(0, 1))
MsgBox r2.Address(0, 0)
End Sub
В основном это удаляет первый столбец из блока.
Это может быть неуклюжим, но вы можете использовать Range.Range (который возвращает местоположение в пределах заданного диапазона):
Set StartRng = Range("B1:D10")
Set FinishRng = Range(StartRng.Range("B1"), StartRng.Range("C10"))
или с Range.Cells
Set StartRng = Range("B1:D10")
Set FinishRng = Range(StartRng.Cells(1, 2), StartRng.Cells(10, 3))
Это будет более универсальным для создавая диапазоны в пределах диапазонов, где это не простой размер одного столбца, например @Joe. – Chrismas007