Добрый день Уважаемые знатоки, долго искал подходящий ответ на вопрос на форуме, но не нашел в силу того что не очень силен в макросах, но стараюсь разобраться.
Сейчас стоит следующая задача, необходимо из таблицы А2:H15 (лист: Таблица исходная) скопировать не пустые значения и потом добавить их как новые строки ниже в "Умную таблицу" (ТаблицаЗначений) на листе: Таблица для вставки. Вставлять данные необходимо не как формулы а как простое значение ячейки.
Как копировать просто значение по сроке и потом переносить их в умную таблицу я сделал, но вот задача в том что в таблице А2:H15 (лист: Таблица исходная) может быть как 1 так и 5 и 12 и 20 значений.
В файл примера добавил небольшой макрос который сейчас у меня работает, но только по первой строке, а как сделать его так чтобы можно было копировать не пустые значения и сразу вставлять их все по нажатию кнопки я не знаю.
Помогите пожалуйста решить эту задачу.
Ниже макрос который присутствует в файле (для наглядности).
Очень рассчитываю на помощь присутствующих!
Сейчас стоит следующая задача, необходимо из таблицы А2:H15 (лист: Таблица исходная) скопировать не пустые значения и потом добавить их как новые строки ниже в "Умную таблицу" (ТаблицаЗначений) на листе: Таблица для вставки. Вставлять данные необходимо не как формулы а как простое значение ячейки.
Как копировать просто значение по сроке и потом переносить их в умную таблицу я сделал, но вот задача в том что в таблице А2:H15 (лист: Таблица исходная) может быть как 1 так и 5 и 12 и 20 значений.
В файл примера добавил небольшой макрос который сейчас у меня работает, но только по первой строке, а как сделать его так чтобы можно было копировать не пустые значения и сразу вставлять их все по нажатию кнопки я не знаю.
Помогите пожалуйста решить эту задачу.
Ниже макрос который присутствует в файле (для наглядности).
Код |
---|
Sub Копирование_первой_строки() Dim whishodniy As Worksheet, whBD As Worksheet, lobjDB As ListObject, lngI As Long Application.ScreenUpdating = False 'отключаем обновление экрана Set whishodniy = Worksheets("Таблица исходная"): Set whBD = Worksheets("Таблица для вставки"): Set lobjDB = whBD.ListObjects("ТаблицаЗначений") lobjDB.ListRows.Add 'добавляем в "умную" таблицу строку lngI = lobjDB.ListRows.Count 'считаем количество строк с данными в "умной" таблице 'копируем и переносим как спец.вставка значений по каждой ячейке таблицы из формы с листа таблица исходная в умную таблицу листа для вставки whishodniy.[A2].Copy: lobjDB.DataBodyRange(lngI, 1).PasteSpecial Paste:=xlPasteValues whishodniy.[B2].Copy: lobjDB.DataBodyRange(lngI, 2).PasteSpecial Paste:=xlPasteValues whishodniy.[C2].Copy: lobjDB.DataBodyRange(lngI, 3).PasteSpecial Paste:=xlPasteValues whishodniy.[D2].Copy: lobjDB.DataBodyRange(lngI, 4).PasteSpecial Paste:=xlPasteValues whishodniy.[E2].Copy: lobjDB.DataBodyRange(lngI, 5).PasteSpecial Paste:=xlPasteValues whishodniy.[F2].Copy: lobjDB.DataBodyRange(lngI, 6).PasteSpecial Paste:=xlPasteValues whishodniy.[G2].Copy: lobjDB.DataBodyRange(lngI, 7).PasteSpecial Paste:=xlPasteValues whishodniy.[H2].Copy: lobjDB.DataBodyRange(lngI, 8).PasteSpecial Paste:=xlPasteValues ActiveWorkbook.Save 'сохраняем результат чтобы ничего не потерять Application.CutCopyMode = False Application.ScreenUpdating = True 'включаем обратно обновление экрана. End Sub |