Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/64: Рейтинг темы: голосов - 64, средняя оценка - 4.81
5 / 5 / 0
Регистрация: 27.02.2013
Сообщений: 115
1

Получение текущего положения курсора в Excel и перенос данных макросом

28.09.2015, 20:32. Показов 11868. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Знающие люди, подскажите, пожалуйста, как с помощью макроса получить активное положение курсора(ячейки) в Excel и начиная с этой ячейки перенести всю информацию с одного листа на другой лист? Допустим необходимо от текущего положения курсора на листе 1 последовательно перенести значения ячеек этой сроки на лист 2.

Добавлено через 20 минут
Поправочка. Лучше копировать, а не переносить. ))
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2015, 20:32
Ответы с готовыми решениями:

Получение положения курсора и изменения Position на ProgressBar
Дорого вечера. У меня возникла проблема с получением координат курсора. Задача: кликнуть на...

Перевод курсора в Word на следующую строку, макросом из Excel
Добрый день. Имеется таблица в Ворде, макрос работает из Экселя. На закладку выходит нормально,...

Перенос строки в Excel из одого листа в другой макросом
Добрый день! Я веду список задач на листе в эксел файле (1задача-1строка) и когда задача...

Отображание данных в зависимости от положения курсора
пример: есть лист с общими продажами (строки - товар, столбцы - дата, значения - колво проданного),...

5
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
28.09.2015, 20:49 2
маловато деталей, поэтому вот вам топорный код, который будет копировать всю строку правее выделенной ячейки (включая выделение) всегда в первую ячейку второго листа

Visual Basic
1
2
3
4
x = ActiveCell.Column
Rows(ActiveCell.Row).Copy Destination:=Sheet2.Cells(1, 1)
Sheet2.Select
Range(Cells(1, 1), Cells(1, x - 1)).Delete Shift:=xlToLeft
1
5 / 5 / 0
Регистрация: 27.02.2013
Сообщений: 115
28.09.2015, 21:01  [ТС] 3
Согласен, давайте предметно.
Лист1 содержит
Ячейки A1 B1 C1 D1 E1, положение курсора на листе1 ячейка B1, необходимо скопировать значения всех ячеек(ячейки B1 C1 D1 E1) начиная от текущего положения курсора(ячейка B1) на лист2 в ячейки B1 C1 D1 E1 соответственно.
0
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
28.09.2015, 22:42 4
если данные в строке идут непрерывно (т.е. между данными в строке не будет пустых ячеек (колонок)) то вполне подойдет вот такая конструкция

Visual Basic
1
Range(ActiveCell, ActiveCell.End(xlToRight)).Copy Destination:=Sheet2.Range(ActiveCell.Address)
1
5 / 5 / 0
Регистрация: 27.02.2013
Сообщений: 115
29.09.2015, 08:13  [ТС] 5
Спасибо. А если необходимо будет копировать не последовательно, как изменится код? Допустим сначала надо скопировать B1, потом E1, потом C1.
0
195 / 17 / 2
Регистрация: 15.01.2015
Сообщений: 190
29.09.2015, 12:07 6
Лучший ответ Сообщение было отмечено run82 как решение

Решение

Ну опять же данных катастрофически мало. Я вам могу сейчас написать код, чтобы было так как вы захотели в последнем посте, но он будет работать сугубо для "B1 - E1 - C1" где вместо 1 будет номер строки активной ячейки. Невозможно сделать универсальный код, исходя из пары постов типа "а вот так? а если так? и еще вот так". Нагуглите аббревиатуру TMTOWTDI. Не факт, что каждый ваш следующий вопрос будет расширять логику предыдущего данного кода. Например в первом своем посте я копировал строку и удалял потом ненужное, во втором - копировал часть строки, код ниже - для копирования отдельных диапазонов. Собрать все это в один универсальный, я боюсь, не получится. Либо вы четко формулируете задачу, либо довольствуетесь множеством разных кусков кода с разным подходом.

Вот код для "надо скопировать B1, потом E1, потом C1"

Visual Basic
1
2
3
Cells(ActiveCell.Row, 2).Copy Destination:=Sheet2.Cells(ActiveCell.Row, 2)
Cells(ActiveCell.Row, 5).Copy Destination:=Sheet2.Cells(ActiveCell.Row, 5)
Cells(ActiveCell.Row, 3).Copy Destination:=Sheet2.Cells(ActiveCell.Row, 3)
1
29.09.2015, 12:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2015, 12:07
Помогаю со студенческими работами здесь

Поиск и перенос данных макросом.
Здравствуйте уважаемые форумчане! Помогите решить нетрудную для специалиста задачу. Попробовал...

Фильтрация данных и перенос в другой файл, макросом
Здравствуйте, подскажите пожалуйста возможно ли макросом сделать следующее: имеется таблица с...

Перенос части данных из одного столбца в другой макросом
BLIZZAK SPIKE-01(175/65R14 SP1PZ 082T T (ШИП))- 2014г. подскажите пожалуйста как перенести в...

Получение данных из другого файла и копирование их в файл с макросом
Необходимо импортировать данный из нескольких определенных диапазонов ячеек в другом файле и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru