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

Вход

Регистрация

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

 

= Мир MS Excel/оптимизация макроса по копированию данных из разных книг - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » оптимизация макроса по копированию данных из разных книг (созданный мной макрос получится слишком длинным.)
оптимизация макроса по копированию данных из разных книг
amaksimus85 Дата: Пятница, 08.07.2022, 00:30 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Приветствую, дорогие форумчане.
При написании программы проведения соревнований, создал макрос, который будет очень большим, что прибавит много рутинной работы.
Суть такая: Книга А (макет с таблицами для разного количества участников), Книга Б (протокол взвешивания участников), Книга В (турнирная сетка).
Мой макрос копирует определенный лист из Книги А (в зависимости от участников взвешивания в Книге Б) в Книгу В.

[vba]
Код
Sub ê8()
'
' ê8 Ìàêðîñ
'

Sub ()
    
    If ActiveSheet.Range("C101") = 8 Then
    Windows("Книга А.xlsm").Activate
    Sheets("8").Select     '[color=green]  макет для 8 участников
    Sheets("8").Copy After:=Workbooks(Книга В..xlsm").ActiveSheet
      Windows(Книга Б..xlsm").Activate
    Range("B3:F314").Select
    Selection.Copy
     Windows("Книга В.xlsm").Activate
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     Windows("Книга Б..xlsm").Activate
    Range("A2:S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(Книга В..xlsm").Activate
    Range("A2:S2").Select
    ActiveSheet.Paste

    ElseIf ActiveSheet.Range("C101") = 9 Then
      Windows("Книга А.xlsm").Activate
    Sheets("9").Select    '[color=green] макет для 8 участников
    Sheets("9").Copy After:=Workbooks(Книга В..xlsm").ActiveSheet
      Windows(Книга Б..xlsm").Activate
    Range("B3:F314").Select
    Selection.Copy
     Windows("Книга В.xlsm").Activate
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     Windows("Книга Б..xlsm").Activate
    Range("A2:S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(Книга В..xlsm").Activate
    Range("A2:S2").Select
    ActiveSheet.Paste

и т.д.

        End If
end Sub
[/vba]
К сообщению приложен файл: 3840739.xls(442.0 Kb) · 9953371.xls(114.0 Kb) · 4206750.xls(260.0 Kb)
 
Ответить
СообщениеПриветствую, дорогие форумчане.
При написании программы проведения соревнований, создал макрос, который будет очень большим, что прибавит много рутинной работы.
Суть такая: Книга А (макет с таблицами для разного количества участников), Книга Б (протокол взвешивания участников), Книга В (турнирная сетка).
Мой макрос копирует определенный лист из Книги А (в зависимости от участников взвешивания в Книге Б) в Книгу В.

[vba]
Код
Sub ê8()
'
' ê8 Ìàêðîñ
'

Sub ()
    
    If ActiveSheet.Range("C101") = 8 Then
    Windows("Книга А.xlsm").Activate
    Sheets("8").Select     '[color=green]  макет для 8 участников
    Sheets("8").Copy After:=Workbooks(Книга В..xlsm").ActiveSheet
      Windows(Книга Б..xlsm").Activate
    Range("B3:F314").Select
    Selection.Copy
     Windows("Книга В.xlsm").Activate
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     Windows("Книга Б..xlsm").Activate
    Range("A2:S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(Книга В..xlsm").Activate
    Range("A2:S2").Select
    ActiveSheet.Paste

    ElseIf ActiveSheet.Range("C101") = 9 Then
      Windows("Книга А.xlsm").Activate
    Sheets("9").Select    '[color=green] макет для 8 участников
    Sheets("9").Copy After:=Workbooks(Книга В..xlsm").ActiveSheet
      Windows(Книга Б..xlsm").Activate
    Range("B3:F314").Select
    Selection.Copy
     Windows("Книга В.xlsm").Activate
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
     Windows("Книга Б..xlsm").Activate
    Range("A2:S2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(Книга В..xlsm").Activate
    Range("A2:S2").Select
    ActiveSheet.Paste

и т.д.

        End If
end Sub
[/vba]

Автор - amaksimus85
Дата добавления - 08.07.2022 в 00:30
Serge_007 Дата: Пятница, 08.07.2022, 09:57 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 15571
Репутация: 2559 ±
Замечаний: ±

Excel 2016
amaksimus85, Вы точно разделом не ошиблись?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщениеamaksimus85, Вы точно разделом не ошиблись?

Автор - Serge_007
Дата добавления - 08.07.2022 в 09:57
amaksimus85 Дата: Суббота, 09.07.2022, 14:17 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, Я здесь новенький. подскажите, что не так. С правилами ознакомился
 
Ответить
СообщениеSerge_007, Я здесь новенький. подскажите, что не так. С правилами ознакомился

Автор - amaksimus85
Дата добавления - 09.07.2022 в 14:17
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вопросы по VB, VBS, VB.net » оптимизация макроса по копированию данных из разных книг (созданный мной макрос получится слишком длинным.)
  • Страница 1 из 1
  • 1
Поиск:

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