Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
rakish1
0 / 0 / 0
Регистрация: 14.01.2017
Сообщений: 2
1

Копирование данных из разных ячеек одного листа на другой лист

15.01.2017, 00:51. Просмотров 892. Ответов 2
Метки нет (Все метки)

Ребят, доброго всем вечера. Требуется помощь. VBA в рамках предмета под названием "информатика", изучал лет 10 назад, на первом курсе юрфака и до теперь потребности в нем не было, однако сейчас таки возникла... и голова сломана. Весь форум перерыв, ничего подходящего не нашел.
Вопрос следующий.
На листе 1 есть форма просчета стоимости изделия, на листе 2 накопительная форма
На листе 1 в ячейках из разных диапазонов формируются значения, которые подлежат копированию в соответствующие ячейки листа 2.

Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub test()  
Application.ScreenUpdating = False  
Range("A1").Copy  
With Sheets("лист2").Range("B2")  
    .PasteSpecial Paste:=xlPasteValues   
End With  
With Application  
     .ScreenUpdating = False: .CutCopyMode = False  
End With  
End Sub
вот таким, кодом привязанным к кнопочке, повторяющимся 19 раз... я заполнил первую строку в табличке на листе 2. и как бы все... тупняк... как сделать так, что б при повторном нажатии кнопки на листе1, данные прописывались на следующей строке таблички на листе2.? как сделать переменные которые указывали бы место назначения для данных из листа1 в таблице на листе2?

к теме прикрепил файл пример. На листе1 красными цифрами указаны ячейки, данные из которых подлежат копированию на лист2. Тогда как на листе2 теми же красными цифрами указано место назначения данных из ячеек листа1.

Прошу прощения за, наверное, элементарный вопрос для людей с необходимым образованием, но без помощи вряд ли справлюсь.

Заранее благодарен за подсказки.
0
Вложения
Тип файла: zip пример.zip (35.8 Кб, 12 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.01.2017, 00:51
Ответы с готовыми решениями:

Копирование ячеек столбца одного листа и переноса на другой лист
Доброго времени суток всем вам, уважаемые форумчане. В виду рабочей...

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

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

Экономное копирование из одного листа в другой (добавление готовых накладных на лист для печати в excel)
Здравствуйте, подскажите, пожалуйста макрос который будет компактно копировать...

Копирование данных с одного листа на другой
Здравствуйте! Помогите, пожалуйста, профану в программировании написать...

2
kalbasiatka
396 / 248 / 77
Регистрация: 27.10.2012
Сообщений: 832
15.01.2017, 11:41 2
Лучший ответ Сообщение было отмечено rakish1 как решение

Решение

конкретно этот код можно немного сократить:
Visual Basic
1
Sheets("лист2").Range("B2") = Range("A1")
В файле не нахожу "повторяющимся 19 раз..."
Visual Basic
1
2
3
4
With Sheets("Лист2")
    .Cells(.Cells(Rows.Count, 3).End(xlUp).Row + 1, 3).Resize(1, 14) = Array([E3], [J6], _
        [L6], [M6], [N6], [O6], [P6], [J11], [J12], [J17], [J18], [J21], [J25], [J26])
End With
1
rakish1
0 / 0 / 0
Регистрация: 14.01.2017
Сообщений: 2
15.01.2017, 22:48  [ТС] 3
нервы сдали... удалил нафиг код с кнопки который повторялся 19 раз... оставил только рабочие кнопки.

Добавлено через 8 минут
Цитата Сообщение от kalbasiatka
В файле не нахожу "повторяющимся 19 раз..."
Visual Basic
1
2
3
4
With Sheets("Лист2")
    .Cells(.Cells(Rows.Count, 3).End(xlUp).Row + 1, 3).Resize(1, 14) = Array([E3], [J6], _
        [L6], [M6], [N6], [O6], [P6], [J11], [J12], [J17], [J18], [J21], [J25], [J26])
End With
Спасибо огромное. Работает отлично. я Даже не ожидал что такой короткое и эффективное решение может быть. Круто. Спасибо большое.

Добавлено через 10 часов 1 минуту
Простите, все таки еще 1 вопрос. Если диапазон ячеек обозначенный в коде(место назначения копируемых данных) преобразовать в таблицу? этот код же не будет работать?
На самом деле для меня неким открытием был тот факт, что "таблица" в ексель, это отдельный элемент...
Понимаю что надо использовать команду .Tables. подскажите пожалуйста как ее туда вписать?

заранее спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2017, 22:48

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

Копирование данных с одного листа на другой
У меня еще 2 небольших вопросика. 1) Скопировать лист с именем "list1" в...

Копирование данных с одного листа на другой
Добрый день. Есть такая проблемка. В данном коде появляется ошибка при вставке...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru