Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2014, 18:48   #1
AlexanderJin
 
Регистрация: 21.05.2014
Сообщений: 3
По умолчанию Копирование на определённые листы

Добрый день, форумчане!
Просьба помочь с написание кода. Суть заключается в том, что нужно копировать первые листы из одних книг на определённо поименованные листы других книг, до копирования соответсвенно предоставлять выбор из какого файла будет производится копирование. Нашёл код, но он копирует данные только на текущий лист, с которого запускаешь код. Спасибо за помощь. Вот код, который нашёл:
Код:
Sub Get_Value_From_Book()
        Dim sFile As String, sh As Worksheet, ac As Long
        With Application.FileDialog(msoFileDialogFilePicker)
            .Filters.Clear
            .Filters.Add "Microsoft Excel files", "*.xls"
            .AllowMultiSelect = False
            .InitialFileName = ThisWorkbook.Path
            If .Show = 0 Then Exit Sub
            sFile = .SelectedItems(1)
        End With
        Set sh = ActiveWorkbook.ActiveSheet
        
        Range("H6:AX" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
        With Application
            'отключаем обновление экрана - это убыстрит работу макроса
            .ScreenUpdating = False
            'отключаем события книги
            .EnableEvents = False
            'включаем ручной пересчёт формул - это убыстрит работу макроса
            ac = .Calculation: .Calculation = xlCalculationManual
            With GetObject(sFile).Sheets(1).UsedRange
                .Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
                '.Parent.Close False
            End With
            'возвращаем назад всё отключенное/изменённое
            .ScreenUpdating = True
            .EnableEvents = True
            .Calculation = ac
        End With
End Sub

Последний раз редактировалось AlexanderJin; 21.05.2014 в 18:53. Причина: не получается вставить код
AlexanderJin вне форума Ответить с цитированием
Старый 21.05.2014, 18:59   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в этой строке
.Resize(.Rows.Count - 5).Offset(5).Copy sh.[H6]
вместо
sh.[H6]
укажите книгу, лист, ячейку, в которую должны быть скопированы данные.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в определённые поля vbn1 БД в Delphi 2 06.04.2014 18:04
Копирование строк по условию в разные листы korsarqa Microsoft Office Excel 2 23.06.2012 20:51
Удалить из ListView определённые строки Shouldercannon Общие вопросы Delphi 2 31.08.2011 14:02
Копирование ячеек на листы staniiislav Microsoft Office Excel 6 23.06.2011 14:23