Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование значений из книг без формул. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование значений из книг без формул.
bosika Дата: Понедельник, 23.11.2020, 14:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
Здравствуйте Профи!
Не получается собрать из книг данные без формул, вставить только значения. Столбец "А" имеет формулу "ПСТР", столбцы "D" и "Е" - формулу ВПР. Пробовал подставлять функции в коде, но увы, знаний не хватает.
Помогите доработать макрос.

Заранее спасибо.
К сообщению приложен файл: MergeWorkbooks.xls (225.0 Kb) · _1_22.11.2020.xlsx (29.4 Kb)


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
СообщениеЗдравствуйте Профи!
Не получается собрать из книг данные без формул, вставить только значения. Столбец "А" имеет формулу "ПСТР", столбцы "D" и "Е" - формулу ВПР. Пробовал подставлять функции в коде, но увы, знаний не хватает.
Помогите доработать макрос.

Заранее спасибо.

Автор - bosika
Дата добавления - 23.11.2020 в 14:46
CaramelManiac Дата: Понедельник, 23.11.2020, 16:32 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Здрвыствуйте.
замените это
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy Destination:=shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count)
[/vba]
вот этим
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy

shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False
[/vba]


Сообщение отредактировал CaramelManiac - Понедельник, 23.11.2020, 17:06
 
Ответить
СообщениеЗдрвыствуйте.
замените это
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy Destination:=shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count)
[/vba]
вот этим
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy

shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count).PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False
[/vba]

Автор - CaramelManiac
Дата добавления - 23.11.2020 в 16:32
bosika Дата: Понедельник, 23.11.2020, 16:37 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
CaramelManiac, Выдает ошибку синтаксиса.


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
СообщениеCaramelManiac, Выдает ошибку синтаксиса.

Автор - bosika
Дата добавления - 23.11.2020 в 16:37
CaramelManiac Дата: Понедельник, 23.11.2020, 17:02 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Правильно скопировали?
Это три разные строки, т.е. вашу одну заменяете тремя


Сообщение отредактировал CaramelManiac - Понедельник, 23.11.2020, 17:04
 
Ответить
СообщениеПравильно скопировали?
Это три разные строки, т.е. вашу одну заменяете тремя

Автор - CaramelManiac
Дата добавления - 23.11.2020 в 17:02
bosika Дата: Понедельник, 23.11.2020, 17:12 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
CaramelManiac, Вот теперь поправил. 3-ю строку не снес. Теперь все переносится как значения. Можно как то применить что только для определенных столбцов переносились значения? Для "А", который имеет формулу "ПСТР", столбцов "D" и "Е" - формулу ВПР, а остальные оставались как в исходной - с форматированием?


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
Сообщение CaramelManiac, Вот теперь поправил. 3-ю строку не снес. Теперь все переносится как значения. Можно как то применить что только для определенных столбцов переносились значения? Для "А", который имеет формулу "ПСТР", столбцов "D" и "Е" - формулу ВПР, а остальные оставались как в исходной - с форматированием?

Автор - bosika
Дата добавления - 23.11.2020 в 17:12
CaramelManiac Дата: Понедельник, 23.11.2020, 17:21 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Paste:=xlPasteValues - копирует значения
Paste:=xlPasteFormats - копирует форматы

Продублируйте вторую строку, заменив Paste:=xlPasteValues на Paste:=xlPasteFormats
 
Ответить
СообщениеPaste:=xlPasteValues - копирует значения
Paste:=xlPasteFormats - копирует форматы

Продублируйте вторую строку, заменив Paste:=xlPasteValues на Paste:=xlPasteFormats

Автор - CaramelManiac
Дата добавления - 23.11.2020 в 17:21
bosika Дата: Понедельник, 23.11.2020, 17:30 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
CaramelManiac, Ошибок не выдает, но данные не переносит только со второго аналогичного файла нормально. С первого без форматирования.


Начинающий. Много и долго не пинать. Больно однако.

Сообщение отредактировал bosika - Понедельник, 23.11.2020, 17:33
 
Ответить
Сообщение CaramelManiac, Ошибок не выдает, но данные не переносит только со второго аналогичного файла нормально. С первого без форматирования.

Автор - bosika
Дата добавления - 23.11.2020 в 17:30
bosika Дата: Понедельник, 23.11.2020, 17:34 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
А у меня их более 30-ти.


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
СообщениеА у меня их более 30-ти.

Автор - bosika
Дата добавления - 23.11.2020 в 17:34
CaramelManiac Дата: Понедельник, 23.11.2020, 17:38 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 64
Репутация: 22 ±
Замечаний: 0% ±

MS Excel 2003-2019
Попробуйте так
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy

With shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count)
    .PasteSpecial Paste:=xlPasteFormats
    .PasteSpecial Paste:=xlPasteValues
End With

Application.CutCopyMode = False
[/vba]
 
Ответить
СообщениеПопробуйте так
[vba]
Код
sh.Range(sh.Range("a8"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 17).Copy

With shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1).Resize(ra.Rows.Count, ra.Columns.Count)
    .PasteSpecial Paste:=xlPasteFormats
    .PasteSpecial Paste:=xlPasteValues
End With

Application.CutCopyMode = False
[/vba]

Автор - CaramelManiac
Дата добавления - 23.11.2020 в 17:38
bosika Дата: Понедельник, 23.11.2020, 17:46 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
CaramelManiac, О, КРУТО. Большое спасибо. +


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
Сообщение CaramelManiac, О, КРУТО. Большое спасибо. +

Автор - bosika
Дата добавления - 23.11.2020 в 17:46
bosika Дата: Понедельник, 23.11.2020, 17:47 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 105
Репутация: 0 ±
Замечаний: 40% ±

Excel 2010, 2013, 2016
Модераторы! Тему можно закрыть.


Начинающий. Много и долго не пинать. Больно однако.
 
Ответить
СообщениеМодераторы! Тему можно закрыть.

Автор - bosika
Дата добавления - 23.11.2020 в 17:47
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!