Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2011, 12:44   #1
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию Задать диапазон ограниченый номерами строк и столбов

Добрый день!
Подскажите пожалуйста, как задать диапазон ячеек который ограничен номерами строк и столбцов?
Severny вне форума Ответить с цитированием
Старый 11.09.2011, 12:58   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Например, диапазон строк от r1 до r2 в диапазоне столбцов от c1 до c2 можно задать так:
Код:
Dim r1 As Long, r2 As Long, c1 As Long, c2 As Long, rng As Range
r1 = 10: r2 = 20: c1 = 5: c2 = 10
Set x = Range(Cells(r1, c1), Cells(r2, c2))
x.Select 'для наглядности
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.09.2011, 16:31   #3
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Варианты
Код:
Set x = Cells(r1, c1).Resize(r2 - r1 + 1, c2 - c1 + 1)
Код:
Set x = Range(Application.ConvertFormula("R" & r1 & "C" & c1 & ":R" & r2 & "C" & c2, xlR1C1, xlA1))
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 11.09.2011 в 16:36.
Казанский вне форума Ответить с цитированием
Старый 11.09.2011, 20:24   #4
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

SAS888, Казанский Спасибо вам!
SAS888 А почему вы взяли для чисел тип данных Long?
Severny вне форума Ответить с цитированием
Старый 12.09.2011, 04:03   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А почему вы взяли для чисел тип данных Long?
Потому, что, во-первых, номер строки может быть больше, чем 32768, т.е. типа integer не достаточно. Во-вторых, мне не известно, каким образом Вы получаете значения переменных r и c.

Варианты, предложенные уважаемым Казанским рабочие, но 1-й требует дополнительных расчетов и обязательного выполнения условий r2 > r1 и c2 > c1, за которыми нужно следить. А 2-й вместо расчетов содержит несколько операторов конкатенации, которые медленные. Да, и зачем что-то вычислять, когда можно обойтись и без этого?
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 12.09.2011 в 04:27.
SAS888 вне форума Ответить с цитированием
Старый 12.09.2011, 11:12   #6
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Спасибо Вам!
Severny вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для прямоугольной матрицы построить вектор В с номерами максимальных значений строк (Паскаль)-проверить Марьянка Помощь студентам 1 02.04.2011 00:14
как задать диапазон времени Dmitrys Microsoft Office Excel 3 11.02.2011 16:51
Как задать диапазон листов в СЧЁТЕСЛИ olga=) Microsoft Office Excel 7 08.09.2010 01:14
как задать диапазон для случайных чисел Аlex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 07.05.2010 03:18
задать диапазон используя значение переменной eto Microsoft Office Excel 12 03.03.2009 17:36