Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как в Vba выделить несколько ячеек???

2.3K
05 ноября 2002 года
Oracloid
8 / / 05.11.2002
Необходимо выделить несколько ячеек указывая столбцы числом, а не буквой, т.е.
ActiveCell.Offset(3, 1).Range("A1:C4").Select
не прокатит!!!
Cells тоже нельзя использовать... т.е.
ActiveCell.Offset(3, 1).Range(Cells(1,1), Cells(4,4)).Select
тоже нельзя использовать.
Если кто-нибудь знает иной способ - подскажите!!!
267
06 ноября 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Oracloid
Необходимо выделить несколько ячеек указывая столбцы числом, а не буквой, т.е.
ActiveCell.Offset(3, 1).Range("A1:C4").Select
не прокатит!!!
Cells тоже нельзя использовать... т.е.
ActiveCell.Offset(3, 1).Range(Cells(1,1), Cells(4,4)).Select
тоже нельзя использовать.
Если кто-нибудь знает иной способ - подскажите!!!



Что-то ты замудрил.

ActiveSheet.Range(Cells(1, 2), Cells(3, 7)).Select

Или пиши подробнее, что тебе можно, что нельзя и почему нельзя. :)

2.3K
06 ноября 2002 года
Oracloid
8 / / 05.11.2002
Дело вот какое:
Обращатся к ячейкам через букву сложнее, чем просто указывать номер столбца и номер ячейки. Например нужно написать чтобы по циклу все пробежать и ты не ломаешь голову.
Использую Forms (Oracle-овый продукт) и OLE для того чтобы управлять Екселом.
Исходный текст выглядит так:

ArgList OLE2.LIST_TYPE;

ArgList:=OLE2.CREATE_ARGLIST; --передаваемый аргумент
OLE2.ADD_ARG(ArgList, 'A1');
OLE2.ADD_ARG(ArgList, 'B5');
cell:=OLE2.get_OBJ_property(worksheet, 'range', ArgList);
OLE2.DESTROY_ARGLIST(ArgList);
OLE2.Invoke(cell,'select');
Это работает.

Но хотелось бы передавать координаты ячеек указывая столбец цифрой, а не буквой.
Например:
OLE2.ADD_ARG(ArgList, '1:1');--верхняя левая
OLE2.ADD_ARG(ArgList, '2:5');--нижнаяя правая

Я не могу передать в качестве аргумента 'Cell(1,1)' - нужны конкретные значения
267
06 ноября 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Oracloid
Дело вот какое:
Обращатся к ячейкам через букву сложнее, чем просто указывать номер столбца и номер ячейки. Например нужно написать чтобы по циклу все пробежать и ты не ломаешь голову.
Использую Forms (Oracle-овый продукт) и OLE для того чтобы управлять Екселом.
Исходный текст выглядит так:

ArgList OLE2.LIST_TYPE;

ArgList:=OLE2.CREATE_ARGLIST; --передаваемый аргумент
OLE2.ADD_ARG(ArgList, 'A1');
OLE2.ADD_ARG(ArgList, 'B5');
cell:=OLE2.get_OBJ_property(worksheet, 'range', ArgList);
OLE2.DESTROY_ARGLIST(ArgList);
OLE2.Invoke(cell,'select');
Это работает.

Но хотелось бы передавать координаты ячеек указывая столбец цифрой, а не буквой.
Например:
OLE2.ADD_ARG(ArgList, '1:1');--верхняя левая
OLE2.ADD_ARG(ArgList, '2:5');--нижнаяя правая

Я не могу передать в качестве аргумента 'Cell(1,1)' - нужны конкретные значения




Попробуй 'R5C2'. 5 - row (строка), 2 - column (столбец).

2.3K
06 ноября 2002 года
Oracloid
8 / / 05.11.2002
Пробовал - не проходит... =(
267
06 ноября 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Oracloid
Пробовал - не проходит... =(



Тогда извини. Я просто не специалист в области взаимодействия с Ораклом. Я просто Эксельщик. :(

2.3K
06 ноября 2002 года
Oracloid
8 / / 05.11.2002
2 Cutty Sark
Да все нормально... Если такая возможность есть - рано или поздно сделаю...
Спасибо за участие!
267
06 ноября 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Oracloid
2 Cutty Sark
Да все нормально... Если такая возможность есть - рано или поздно сделаю...
Спасибо за участие!



Удачи!
Кстати, что это у тебя за город такой? :D

2.3K
06 ноября 2002 года
Oracloid
8 / / 05.11.2002
Цитата:
Originally posted by Cutty Sark

Удачи!
Кстати, что это у тебя за город такой? :D


Город назван в честь реки Мега. Находится в Тюменской области. Компанию Славнефть знаешь - это наша. :D

267
06 ноября 2002 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by Oracloid

Город назван в честь реки Мега. Находится в Тюменской области. Компанию Славнефть знаешь - это наша. :D



Понятки. А то у меня столько ассоциаций вылезло... :)

2.3K
06 ноября 2002 года
Oracloid
8 / / 05.11.2002
Цитата:
Originally posted by Cutty Sark

Понятки. А то у меня столько ассоциаций вылезло... :)



:D

265
06 ноября 2002 года
Gauss
975 / / 20.02.2000
можно вычислить номер столбца из буквенного кода и буквенный код из номера столбца
2.3K
10 ноября 2002 года
Oracloid
8 / / 05.11.2002
Цитата:
Originally posted by Gauss
можно вычислить номер столбца из буквенного кода и буквенный код из номера столбца


Понятно что можно написать функцию которая будет это дело преобразовывать, но это повлияет на производительность.

2.3K
12 ноября 2002 года
Oracloid
8 / / 05.11.2002
Если кому интересно... Решение возможно что не идеальное, но все же...

Set mc = Worksheets("Sheet1").Cells(1, 1)
MsgBox mc.Address() ' $A$1

Т.е. для того чтобы выделить ячейки не указывая в адресе буквы достаточно такой простой конструкции...
Всем удачи!
70K
28 января 2012 года
tatooine
14 / / 28.01.2012
Cutty Sark, подскажи тогда мне как выделить несколько ячеек активной строки. Скажем с 1 по 21 столбец. Только активную строку. Чет я многое перепробовал и не получается.
70K
28 января 2012 года
tatooine
14 / / 28.01.2012
Сам же отвечу на свой вопрос
Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 21)).Select
Доперло только что.
275
28 января 2012 года
pashulka
985 / / 19.09.2004
Можно также использовать :

 
Код:
Cells(ActiveCell.Row, 1).Resize(, 21).Select


 
Код:
ActiveCell.EntireRow(1).Resize(, 21).Select


 
Код:
ActiveCell.EntireRow.Cells(1).Resize(, 21).Select


или даже :

 
Код:
ActiveCell.EntireRow.Columns("A:U").Select


 
Код:
Range("A1:U1").Offset(ActiveCell.Row - 1).Select


Вот только, для того, чтобы работать с об'ектом Range, в большинстве случаев, выделять его не нужно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог