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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос копирования диапазона - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Макрос копирования диапазона (Формулы/Formulas)
Макрос копирования диапазона
ddr Дата: Пятница, 29.03.2019, 11:53 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Ребята, помогите пожалуйста! Вот значит макрос копирующий на лист "Svod" со строки 77 много-много ячеек из остальных листов начиная со строки 5 в этой книге. Работает как надо. Почти как надо. Я заметил, что те формулы которые находятся на определенном листе и ссылаются на другие листы при копировании на "Svod" копируются не правильно.
Пример: на листе "1.1" в ячейке С5 формула "=C6+'1.2'!C5+'1.3'!C5+'1.4'!C5+'1.5'!C5+'1.6'!C5+'1.7'!C5+'1.8'!C5", но при копировании ее на Svod получаем →
"=C74+'1.2'!C73+'1.3'!C73+'1.4'!C73+'1.5'!C73+'1.6'!C73+'1.7'!C73+'1.8'!C73"

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

Sub BuildPlan()

Range("A77:U3000").Select
Selection.Delete


Const startCell = "A5"
Const stCell = "A73"

Dim ws As Worksheet, sv As Worksheet
Dim cell As Range, tbl As Range, shift&

Set sv = ThisWorkbook.Worksheets("Svod")
Set cell = sv.Range(stCell)
cell.CurrentRegion.Offset(cell.Row - cell.CurrentRegion.Row).Clear

For Each ws In ThisWorkbook.Worksheets
If Not ws Is sv Then
Set tbl = ws.Range(startCell).CurrentRegion
shift = ws.Range(startCell).Row - tbl.Row
If tbl.Rows.Count - shift > 0 Then
tbl.Offset(shift).Resize(tbl.Rows.Count - shift).Copy cell
Set cell = cell.Offset(tbl.Rows.Count - shift)
End If
End If
Next
End Sub
 
Ответить
СообщениеРебята, помогите пожалуйста! Вот значит макрос копирующий на лист "Svod" со строки 77 много-много ячеек из остальных листов начиная со строки 5 в этой книге. Работает как надо. Почти как надо. Я заметил, что те формулы которые находятся на определенном листе и ссылаются на другие листы при копировании на "Svod" копируются не правильно.
Пример: на листе "1.1" в ячейке С5 формула "=C6+'1.2'!C5+'1.3'!C5+'1.4'!C5+'1.5'!C5+'1.6'!C5+'1.7'!C5+'1.8'!C5", но при копировании ее на Svod получаем →
"=C74+'1.2'!C73+'1.3'!C73+'1.4'!C73+'1.5'!C73+'1.6'!C73+'1.7'!C73+'1.8'!C73"

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

Sub BuildPlan()

Range("A77:U3000").Select
Selection.Delete


Const startCell = "A5"
Const stCell = "A73"

Dim ws As Worksheet, sv As Worksheet
Dim cell As Range, tbl As Range, shift&

Set sv = ThisWorkbook.Worksheets("Svod")
Set cell = sv.Range(stCell)
cell.CurrentRegion.Offset(cell.Row - cell.CurrentRegion.Row).Clear

For Each ws In ThisWorkbook.Worksheets
If Not ws Is sv Then
Set tbl = ws.Range(startCell).CurrentRegion
shift = ws.Range(startCell).Row - tbl.Row
If tbl.Rows.Count - shift > 0 Then
tbl.Offset(shift).Resize(tbl.Rows.Count - shift).Copy cell
Set cell = cell.Offset(tbl.Rows.Count - shift)
End If
End If
Next
End Sub

Автор - ddr
Дата добавления - 29.03.2019 в 11:53
китин Дата: Пятница, 29.03.2019, 11:56 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 5444
Репутация: 870 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
- Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение- Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 29.03.2019 в 11:56
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Макрос копирования диапазона (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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