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

Вход

Регистрация

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

 

= Мир MS Excel/Из всех листов книги скопировать нужные строки на новый лист - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Из всех листов книги скопировать нужные строки на новый лист
timo64uk Дата: Среда, 09.10.2024, 11:54 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Добрый день.
Помогите с макросом, пожалуйста.
В активной книге много листов, нужно создать новый лист "Итого" и 10, 11 и 12 строки из всех листов скопировать по порядку в лист "Итого".
При чём в данных строках имеются привязанные формулы, поэтому нужны лишь значения (как будто "вставить123").
К сообщению приложен файл: 8585.xlsx (10.7 Kb)


Сообщение отредактировал timo64uk - Среда, 09.10.2024, 11:54
 
Ответить
СообщениеДобрый день.
Помогите с макросом, пожалуйста.
В активной книге много листов, нужно создать новый лист "Итого" и 10, 11 и 12 строки из всех листов скопировать по порядку в лист "Итого".
При чём в данных строках имеются привязанные формулы, поэтому нужны лишь значения (как будто "вставить123").

Автор - timo64uk
Дата добавления - 09.10.2024 в 11:54
mgt Дата: Среда, 09.10.2024, 14:58 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 103
Репутация: 26 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub com()
Dim sh As Worksheet
Dim ish As Worksheet
Dim i%, k%

On Error GoTo m1
Set ish = Sheets("Итого")
GoTo m2
m1:
Set ish = Sheets.Add(Sheets(1))
ish.Name = "Итого"
m2:

k = 1
For Each sh In ThisWorkbook.Worksheets
    If sh.Name <> ish.Name Then
        For i = 10 To 12
            ish.Rows(k).Value = sh.Rows(i).Value
            k = k + 1
        Next i
    End If
Next
End Sub
[/vba]


Сообщение отредактировал mgt - Среда, 09.10.2024, 15:29
 
Ответить
Сообщение[vba]
Код
Sub com()
Dim sh As Worksheet
Dim ish As Worksheet
Dim i%, k%

On Error GoTo m1
Set ish = Sheets("Итого")
GoTo m2
m1:
Set ish = Sheets.Add(Sheets(1))
ish.Name = "Итого"
m2:

k = 1
For Each sh In ThisWorkbook.Worksheets
    If sh.Name <> ish.Name Then
        For i = 10 To 12
            ish.Rows(k).Value = sh.Rows(i).Value
            k = k + 1
        Next i
    End If
Next
End Sub
[/vba]

Автор - mgt
Дата добавления - 09.10.2024 в 14:58
timo64uk Дата: Среда, 09.10.2024, 16:53 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Спасибо огромное. Хороший код с возможностью редактирования строк
[vba]
Код
For Each sh In ThisWorkbook.Worksheets
[/vba]
заменил на [vba]
Код
For Each sh In ActiveWorkbook.Worksheets
[/vba]
Потому что запускаю макросы не через надстройки, а из стороннего файла на раб. столе (я уже понял что так не правильно делать), но привычка), и чтобы листы этого файла не подтягивались немного изменил код.


Сообщение отредактировал timo64uk - Четверг, 10.10.2024, 02:53
 
Ответить
СообщениеСпасибо огромное. Хороший код с возможностью редактирования строк
[vba]
Код
For Each sh In ThisWorkbook.Worksheets
[/vba]
заменил на [vba]
Код
For Each sh In ActiveWorkbook.Worksheets
[/vba]
Потому что запускаю макросы не через надстройки, а из стороннего файла на раб. столе (я уже понял что так не правильно делать), но привычка), и чтобы листы этого файла не подтягивались немного изменил код.

Автор - timo64uk
Дата добавления - 09.10.2024 в 16:53
  • Страница 1 из 1
  • 1
Поиск:

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