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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2013, 06:53   #1
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
Вопрос 2 переменные каждой свой номер строки.

Добрый день и с новым годом всех.
Как можно было бы назначить переменным.
При выделении диапазона ячеек 2 или более, одной назначался номер строки верхней ячейки другой нижней.

Код:
R = ActiveCell.Row

Range("b" & R & ":d" & R).copy
А хотелось чтобы копировалось как то так.
Код:
R = up.ActiveCell.Row  'Номер строки верхней выделеной ячейки
E = duwn.ActiveCell.Row 'Номер строки нижней выделеной ячейки

Range("b" & R & ":d" & E).copy

И соответственно если выделена одна ячейка то значение номера строки у обоих переменных одинаково.

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

Последний раз редактировалось FiataliS; 31.12.2013 в 08:51. Причина: Примечание.
FiataliS вне форума Ответить с цитированием
Старый 31.12.2013, 09:55   #2
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от FiataliS Посмотреть сообщение
Добрый день и с новым годом всех.
Как можно было бы назначить переменным.
При выделении диапазона ячеек 2 или более, одной назначался номер строки верхней ячейки другой нижней.

Код:
R = ActiveCell.Row

Range("b" & R & ":d" & R).copy
А хотелось чтобы копировалось как то так.
Код:
R = up.ActiveCell.Row  'Номер строки верхней выделеной ячейки
E = duwn.ActiveCell.Row 'Номер строки нижней выделеной ячейки

Range("b" & R & ":d" & E).copy

И соответственно если выделена одна ячейка то значение номера строки у обоих переменных одинаково.

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


Нашел ответ

Код:
E = Selection.Row + Selection.Rows.Count - 1
Знаю как, не знаю что и с чем.
FiataliS вне форума Ответить с цитированием
Старый 31.12.2013, 13:25   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

С Наступающим!
И не забудьте, что это верно только для первой выделенной области! Т.е. будет учтена только она.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.01.2014, 11:29   #4
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
Смущение

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
С Наступающим!
И не забудьте, что это верно только для первой выделенной области! Т.е. будет учтена только она.
Что бы это значило :-)?


Я вам код покажу целиком, мне кажеться это не из этой темы :-)

Код:
R = ActiveCell.Row
E = Selection.Row + Selection.Rows.Count - 1

'затем
Range("b" & R & ":d" & E).copy
Есть недостаток у кода это когда копирует все нормально только при выделении сверху вниз, а снизу вверх копирует только одну нижнюю строку активной ячейки..., это не критично выделяю только сверху вниз
Если вы про этот момент то да проблемка.
Знаю как, не знаю что и с чем.

Последний раз редактировалось FiataliS; 13.01.2014 в 11:32.
FiataliS вне форума Ответить с цитированием
Старый 13.01.2014, 12:26   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
...копирует все нормально только при выделении сверху вниз...
Вместо
Код:
R = ActiveCell.Row
используйте
Код:
R = Selection.Row
и проблемки не будет.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.01.2014, 12:44   #6
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Вместо
Код:
R = ActiveCell.Row
используйте
Код:
R = Selection.Row
и проблемки не будет.
Да, все четко работает.
Знаю как, не знаю что и с чем.
FiataliS вне форума Ответить с цитированием
Старый 13.01.2014, 12:50   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А предупреждение Hugo121 о том, что если через Ctrl выделить несколько областей, то Ваш код сработает только для 1-ой.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.01.2014, 12:53   #8
FiataliS
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 56
По умолчанию

Это выделение ячеек через одну, я данной функцией пользоваться не собирался. Спасибо.
Знаю как, не знаю что и с чем.
FiataliS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму элементов каждой строки матрицы A(NxM) , определить наименьшее значение этих сумм и номер соответствующей строки merilyn Помощь студентам 3 14.12.2013 11:39
Как узнать свой номер счета в PayPal? Анна-22 Свободное общение 5 24.06.2013 01:45
Найти наименьшие элементы в каждой строке матрицы и номер максимального из них fort-_-minor Общие вопросы C/C++ 3 22.05.2013 15:44
Дана матрица А(m,n).напечатать номер каждой строки ...(Паскаль) Сашка19 Помощь студентам 2 14.12.2011 19:49
Удаление отступов в последней ячейке каждой строки в каждой таблице Busine2009 Microsoft Office Word 7 06.06.2009 12:27