Способ настройки объекта диапазона в VBA путем добавления и удаления строк и столбцов

#excel #vba #range #rows

#excel #vba #диапазон #строки

Вопрос:

В моем приложении Windows Excel мне часто нужно настраивать объекты диапазона, добавляя и удаляя строки и столбцы. Я не смог найти метод, который упростил бы эту общую задачу. Я не пытаюсь изменить данные; Я пытаюсь настроить объект диапазона. Что-то вроде следующего:

 Dim r As Range, s As Range
Set r = Range("B2:C3")     ' r is a 4-cell range object at B2
Set s = r.AdjustMe(OffsetRows:=-1,OffsetColumns:=2,Columns:= 2,Rows:= 3) ' s is now a 20-cell range at D1
Set s = s.AdjustMe(Rows:=-4) ' s is now a single row reference
 

Комментарии:

1. Какова цель? Учитывая контекст, вы просто хотите ввести диапазон без необходимости изменять параметры с r помощью или s ?

2. Я думаю, вы хотите Resize() и OFFSET()

3. @ScottCraner я думал resize (опубликовал вариант с этим); не уверен, хочет ли он более простой способ работать с обновлениями диапазонов или что, поэтому я пошел дальше и дал переменные для каждой начальной строки / столбца и смещений. я все еще чувствую, что необходимо больше контекста.

Ответ №1:

Я думаю, вы просто хотите что-то вроде:

 dim r as long, rp as long, c as long, cp as long, rng as range
r = 1  'initial row  
c = 1  'initial column
rp = 2  'rows plus, the offset you want to work with
cp = 2  'colums plus, the offset you want to work with
set rng = cells(r,c).resize(rp,cp) 
 

Комментарии:

1. ? Диапазон («A1»).Изменить размер (2,3). Адрес дает $ A $ 1: $ C $ 2