Копирование диапазона на лист в другой книге
Alex223
Дата: Среда, 16.08.2017, 21:59 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Всем доброго времени суток! Столкнулся с проблемой при копировании данных с листа из одной книги в другую. Есть большой массив данных, собираемый через Power Qwery в именованную таблицу (порядка 10 столбцов и 150 тыс. строк). Эти данные я должен загружать в другую книгу на лист где уже содержится информация за прошлые периоды, для чего и использую макрос [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] На шаге ActiveSheet.Paste выскакивает Run-time ошибка 1004 и сообщение: Метод Paste из класса Worksheet завершен неверно. Что я делаю не так? Уже все форумы просмотрел, ответов нет...
Всем доброго времени суток! Столкнулся с проблемой при копировании данных с листа из одной книги в другую. Есть большой массив данных, собираемый через Power Qwery в именованную таблицу (порядка 10 столбцов и 150 тыс. строк). Эти данные я должен загружать в другую книгу на лист где уже содержится информация за прошлые периоды, для чего и использую макрос [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] На шаге ActiveSheet.Paste выскакивает Run-time ошибка 1004 и сообщение: Метод Paste из класса Worksheet завершен неверно. Что я делаю не так? Уже все форумы просмотрел, ответов нет... Alex223
Сообщение отредактировал Alex223 - Среда, 16.08.2017, 22:55
Ответить
Сообщение Всем доброго времени суток! Столкнулся с проблемой при копировании данных с листа из одной книги в другую. Есть большой массив данных, собираемый через Power Qwery в именованную таблицу (порядка 10 столбцов и 150 тыс. строк). Эти данные я должен загружать в другую книгу на лист где уже содержится информация за прошлые периоды, для чего и использую макрос [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.Paste Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] На шаге ActiveSheet.Paste выскакивает Run-time ошибка 1004 и сообщение: Метод Paste из класса Worksheet завершен неверно. Что я делаю не так? Уже все форумы просмотрел, ответов нет... Автор - Alex223 Дата добавления - 16.08.2017 в 21:59
InExSu
Дата: Среда, 16.08.2017, 23:46 |
Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 650
Репутация:
96
±
Замечаний:
0% ±
Excel 2010, 365
Попробуйте DoEvents [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value With Application .ScreenUpdating = False Sheets("PIVOT").Range("_1_ФОТ").Copy DoEvents Workbooks.Open Filename:=m Range("A1048576").End(xlUp).Offset(1, 0).Select DoEvents ActiveSheet.Paste .CutCopyMode = False .DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close .DisplayAlerts = True .ScreenUpdating = True End With MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba]
Попробуйте DoEvents [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value With Application .ScreenUpdating = False Sheets("PIVOT").Range("_1_ФОТ").Copy DoEvents Workbooks.Open Filename:=m Range("A1048576").End(xlUp).Offset(1, 0).Select DoEvents ActiveSheet.Paste .CutCopyMode = False .DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close .DisplayAlerts = True .ScreenUpdating = True End With MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] InExSu
Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
Ответить
Сообщение Попробуйте DoEvents [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value With Application .ScreenUpdating = False Sheets("PIVOT").Range("_1_ФОТ").Copy DoEvents Workbooks.Open Filename:=m Range("A1048576").End(xlUp).Offset(1, 0).Select DoEvents ActiveSheet.Paste .CutCopyMode = False .DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close .DisplayAlerts = True .ScreenUpdating = True End With MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] Автор - InExSu Дата добавления - 16.08.2017 в 23:46
Alex223
Дата: Четверг, 17.08.2017, 09:42 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
InExSu, DoEvents не сработал, та же ошибка(
InExSu, DoEvents не сработал, та же ошибка( Alex223
Ответить
Сообщение InExSu, DoEvents не сработал, та же ошибка( Автор - Alex223 Дата добавления - 17.08.2017 в 09:42
and_evg
Дата: Четверг, 17.08.2017, 10:17 |
Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
А если так попробовать? [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba]
А если так попробовать? [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] and_evg
Ответить
Сообщение А если так попробовать? [vba]Код
Sub Загрузка() Dim m As String m = Range("C15").Value Application.ScreenUpdating = False Sheets("PIVOT").Select Range("_1_ФОТ").Select Selection.Copy Workbooks.Open Filename:=m Range("A1048576").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select ActiveSheet.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba] Автор - and_evg Дата добавления - 17.08.2017 в 10:17
Alex223
Дата: Четверг, 17.08.2017, 10:31 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
and_evg, это тоже не работает, я пробовал. Выдает уже другую ошибку Run-time 1004: Application-defined or object defined error
and_evg, это тоже не работает, я пробовал. Выдает уже другую ошибку Run-time 1004: Application-defined or object defined error Alex223
Ответить
Сообщение and_evg, это тоже не работает, я пробовал. Выдает уже другую ошибку Run-time 1004: Application-defined or object defined error Автор - Alex223 Дата добавления - 17.08.2017 в 10:31
and_evg
Дата: Четверг, 17.08.2017, 11:27 |
Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
Alex223 , А количество вставляемых строк не выходит за предельный диапазон?
Alex223 , А количество вставляемых строк не выходит за предельный диапазон?and_evg
Ответить
Сообщение Alex223 , А количество вставляемых строк не выходит за предельный диапазон?Автор - and_evg Дата добавления - 17.08.2017 в 11:27
Alex223
Дата: Четверг, 17.08.2017, 11:32 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
and_evg, нет, строк хватает. По сути вставляю на пустой лист порядка 150 тыс. строк. Книга формата xlsx, так что ошибка не в этом(
and_evg, нет, строк хватает. По сути вставляю на пустой лист порядка 150 тыс. строк. Книга формата xlsx, так что ошибка не в этом( Alex223
Ответить
Сообщение and_evg, нет, строк хватает. По сути вставляю на пустой лист порядка 150 тыс. строк. Книга формата xlsx, так что ошибка не в этом( Автор - Alex223 Дата добавления - 17.08.2017 в 11:32
Alex223
Дата: Четверг, 17.08.2017, 11:38 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Этот макрос одна из частей модуля, который производит ряд манипуляций с данными, в том числе копирование больших диапазонов, но до этого места срабатывает все нормально. Возможно к этому моменту переполняется буфер и внутренней памяти приложения просто не хватает... Вообщем для меня это пока загадка.
Этот макрос одна из частей модуля, который производит ряд манипуляций с данными, в том числе копирование больших диапазонов, но до этого места срабатывает все нормально. Возможно к этому моменту переполняется буфер и внутренней памяти приложения просто не хватает... Вообщем для меня это пока загадка. Alex223
Ответить
Сообщение Этот макрос одна из частей модуля, который производит ряд манипуляций с данными, в том числе копирование больших диапазонов, но до этого места срабатывает все нормально. Возможно к этому моменту переполняется буфер и внутренней памяти приложения просто не хватает... Вообщем для меня это пока загадка. Автор - Alex223 Дата добавления - 17.08.2017 в 11:38
and_evg
Дата: Четверг, 17.08.2017, 11:44 |
Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
Возможно к этому моменту переполняется буфер
тогда перед этим макросом попробуй очистить буфер [vba]Код
Application.CutCopyMode = False
[/vba]
Возможно к этому моменту переполняется буфер
тогда перед этим макросом попробуй очистить буфер [vba]Код
Application.CutCopyMode = False
[/vba]and_evg
Ответить
Сообщение Возможно к этому моменту переполняется буфер
тогда перед этим макросом попробуй очистить буфер [vba]Код
Application.CutCopyMode = False
[/vba]Автор - and_evg Дата добавления - 17.08.2017 в 11:44
and_evg
Дата: Четверг, 17.08.2017, 11:44 |
Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
А книга случаем не защищена? У книги не общий доступ?
А книга случаем не защищена? У книги не общий доступ? and_evg
Ответить
Сообщение А книга случаем не защищена? У книги не общий доступ? Автор - and_evg Дата добавления - 17.08.2017 в 11:44
Alex223
Дата: Четверг, 17.08.2017, 11:52 |
Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
and_evg, книга не защищена, [vba]Код
Application.CutCopyMode = False
[/vba] Очистка буфера этим методом не помогла(
and_evg, книга не защищена, [vba]Код
Application.CutCopyMode = False
[/vba] Очистка буфера этим методом не помогла(Alex223
Ответить
Сообщение and_evg, книга не защищена, [vba]Код
Application.CutCopyMode = False
[/vba] Очистка буфера этим методом не помогла(Автор - Alex223 Дата добавления - 17.08.2017 в 11:52
Alex223
Дата: Четверг, 17.08.2017, 19:59 |
Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Ну что у кого-нибудь ещё есть идеи?
Ну что у кого-нибудь ещё есть идеи? Alex223
Ответить
Сообщение Ну что у кого-нибудь ещё есть идеи? Автор - Alex223 Дата добавления - 17.08.2017 в 19:59
and_evg
Дата: Пятница, 18.08.2017, 07:40 |
Сообщение № 13
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
Alex223 , ну попробуйте тогда отказаться от копирования. Делайте прямым присваиванием. Что то типа такого [vba]Код
Sub Загрузка() Dim m As String Dim row1, row2, col1 Application.ScreenUpdating = False row1 = Worksheets("PIVOT").Range("_1_ФОТ").Rows.Count col1 = Worksheets("PIVOT").Range("_1_ФОТ").Columns.Count m = Range("C15").Value Workbooks.Open Filename:=m row2 = ActiveSheet.Range("A1048576").End(xlUp).Offset(1, 0).Row ActiveSheet.Range(Cells(row2, 1), Cells(row2 + row1 - 1, col1)).Value = _ ThisWorkbook.Worksheets("PIVOT").Range("_1_ФОТ").Value Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba]
Alex223 , ну попробуйте тогда отказаться от копирования. Делайте прямым присваиванием. Что то типа такого [vba]Код
Sub Загрузка() Dim m As String Dim row1, row2, col1 Application.ScreenUpdating = False row1 = Worksheets("PIVOT").Range("_1_ФОТ").Rows.Count col1 = Worksheets("PIVOT").Range("_1_ФОТ").Columns.Count m = Range("C15").Value Workbooks.Open Filename:=m row2 = ActiveSheet.Range("A1048576").End(xlUp).Offset(1, 0).Row ActiveSheet.Range(Cells(row2, 1), Cells(row2 + row1 - 1, col1)).Value = _ ThisWorkbook.Worksheets("PIVOT").Range("_1_ФОТ").Value Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba]and_evg
Ответить
Сообщение Alex223 , ну попробуйте тогда отказаться от копирования. Делайте прямым присваиванием. Что то типа такого [vba]Код
Sub Загрузка() Dim m As String Dim row1, row2, col1 Application.ScreenUpdating = False row1 = Worksheets("PIVOT").Range("_1_ФОТ").Rows.Count col1 = Worksheets("PIVOT").Range("_1_ФОТ").Columns.Count m = Range("C15").Value Workbooks.Open Filename:=m row2 = ActiveSheet.Range("A1048576").End(xlUp).Offset(1, 0).Row ActiveSheet.Range(Cells(row2, 1), Cells(row2 + row1 - 1, col1)).Value = _ ThisWorkbook.Worksheets("PIVOT").Range("_1_ФОТ").Value Application.DisplayAlerts = False ActiveWorkbook.Save ActiveWorkbook.Close Application.DisplayAlerts = True Application.ScreenUpdating = True MsgBox "Данные по ФОТ добавлены в файл DB_ФОТ" End Sub
[/vba]Автор - and_evg Дата добавления - 18.08.2017 в 07:40
Alex223
Дата: Пятница, 18.08.2017, 10:23 |
Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
and_evg, сработало! Большое спасибо за помощь!!! Сам бы я точно такой код пока не осилил. С VBA знаком не достаточно хорошо.
and_evg, сработало! Большое спасибо за помощь!!! Сам бы я точно такой код пока не осилил. С VBA знаком не достаточно хорошо.Alex223
Ответить
Сообщение and_evg, сработало! Большое спасибо за помощь!!! Сам бы я точно такой код пока не осилил. С VBA знаком не достаточно хорошо.Автор - Alex223 Дата добавления - 18.08.2017 в 10:23
and_evg
Дата: Пятница, 18.08.2017, 10:27 |
Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
Alex223 , Я рад за вас.
Ответить
Сообщение Alex223 , Я рад за вас. Автор - and_evg Дата добавления - 18.08.2017 в 10:27