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

Вход

Регистрация

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

 

= Мир MS Excel/слияние нескольких книг в одну таблицу - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
слияние нескольких книг в одну таблицу
Vika101928 Дата: Среда, 11.06.2025, 10:34 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, уважаемые форумчане! Подскажите, пожалуйста, в чем может быть проблема и как ее решить.
Уже несколько лет я пользуюсь макросом, который из нескольких маленьких файликов Excel копирует данные в один большой файл. Сам макрос ниже:

[vba]
Код
Sub gatheringData()
Dim strTitle As String
Dim IngCounter As Long
Dim fileName As Variant
Dim IngLastRow As Long
Dim wbCentralWorkbook As Workbook
Dim wbDataWorkbook As Workbook

strTitle = "Выбор файлов с данными для сбора"
fileName = Application.GetOpenFilename(FileFilter:="All files (*.*), *.*", MultiSelect:=True, Title:="Files to Merge")

Set wbCentralWorkbook = ThisWorkbook
If IsArray(fileName) = True Then
Application.ScreenUpdating = False

For IngCounter = LBound(fileName) To UBound(fileName)

Set wbDataWorkbook = Workbooks.Open(fileName(IngCounter))

IngLastRow = wbDataWorkbook.Worksheets("Лист1").Range("A" & wbDataWorkbook.Worksheets("Лист1").Rows.Count).End(xlUp).Row
wbDataWorkbook.Worksheets("Лист1").Range("A2:F" & IngLastRow).Copy

IngLastRow = wbCentralWorkbook.Worksheets("СВОД").Range("B" & wbCentralWorkbook.Worksheets("СВОД").Rows.Count).End(xlUp).Row
wbCentralWorkbook.Worksheets("СВОД").Range("B" & IngLastRow + 1).PasteSpecial (xlPasteAll)

wbDataWorkbook.Close (True)
Next IngCounter
MsgBox "Готово!"

Application.ScreenUpdating = True
Else:
MsgBox "Файлы не выбраны!"
End If
End Sub
[/vba]

Но с недавнего времени стали попадаться файлы, при попытке открытия их макросом возникает ошибка:
Run-time error "1004":
Method "Open" of object "Workbooks" failed

и когда нажимаешь Debug то открывается макрос и строка выделяется:
Set wbDataWorkbook = Workbooks.Open(fileName(IngCounter))

Как этого можно избежать?
Файл, при загрузке которого возникает ошибка во вложении.
К сообщению приложен файл: fajl_dlja_zakaza_zapreshhennog.xlsx (10.6 Kb)


Сообщение отредактировал Vika101928 - Среда, 11.06.2025, 14:34
 
Ответить
СообщениеДобрый день, уважаемые форумчане! Подскажите, пожалуйста, в чем может быть проблема и как ее решить.
Уже несколько лет я пользуюсь макросом, который из нескольких маленьких файликов Excel копирует данные в один большой файл. Сам макрос ниже:

[vba]
Код
Sub gatheringData()
Dim strTitle As String
Dim IngCounter As Long
Dim fileName As Variant
Dim IngLastRow As Long
Dim wbCentralWorkbook As Workbook
Dim wbDataWorkbook As Workbook

strTitle = "Выбор файлов с данными для сбора"
fileName = Application.GetOpenFilename(FileFilter:="All files (*.*), *.*", MultiSelect:=True, Title:="Files to Merge")

Set wbCentralWorkbook = ThisWorkbook
If IsArray(fileName) = True Then
Application.ScreenUpdating = False

For IngCounter = LBound(fileName) To UBound(fileName)

Set wbDataWorkbook = Workbooks.Open(fileName(IngCounter))

IngLastRow = wbDataWorkbook.Worksheets("Лист1").Range("A" & wbDataWorkbook.Worksheets("Лист1").Rows.Count).End(xlUp).Row
wbDataWorkbook.Worksheets("Лист1").Range("A2:F" & IngLastRow).Copy

IngLastRow = wbCentralWorkbook.Worksheets("СВОД").Range("B" & wbCentralWorkbook.Worksheets("СВОД").Rows.Count).End(xlUp).Row
wbCentralWorkbook.Worksheets("СВОД").Range("B" & IngLastRow + 1).PasteSpecial (xlPasteAll)

wbDataWorkbook.Close (True)
Next IngCounter
MsgBox "Готово!"

Application.ScreenUpdating = True
Else:
MsgBox "Файлы не выбраны!"
End If
End Sub
[/vba]

Но с недавнего времени стали попадаться файлы, при попытке открытия их макросом возникает ошибка:
Run-time error "1004":
Method "Open" of object "Workbooks" failed

и когда нажимаешь Debug то открывается макрос и строка выделяется:
Set wbDataWorkbook = Workbooks.Open(fileName(IngCounter))

Как этого можно избежать?
Файл, при загрузке которого возникает ошибка во вложении.

Автор - Vika101928
Дата добавления - 11.06.2025 в 10:34
and_evg Дата: Среда, 11.06.2025, 12:52 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 481
Репутация: 83 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
в чем может быть проблема

Первая проблема в оформлении кода тегами в соответствии с правилами форума, а вторая это похоже файл "битый" у меня при открытии неудалось прочитать содержимое.
 
Ответить
СообщениеДобрый день.
в чем может быть проблема

Первая проблема в оформлении кода тегами в соответствии с правилами форума, а вторая это похоже файл "битый" у меня при открытии неудалось прочитать содержимое.

Автор - and_evg
Дата добавления - 11.06.2025 в 12:52
Vika101928 Дата: Среда, 11.06.2025, 14:44 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Добрый день.
Благодарю Вас за комментарий, переоформила исходное сообщение.
Если файл, который я пытаюсь автоматом открыть и скопировать макросом, попытаться открыть просто, без макроса, то он открывается. Но открывается через ошибку:
"Ошибка в части содержимого в книге Файл для заказа Запрещенного Ассортимента .xlsx Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку "Да".
Нажимаешь "Да" и файл открывается. Как побороть эти файлы я не знаю, мучала своих программистов.
Часть файлов приходит от партнеров вот такая дефектная и макрос их не затягивает, а часть отлично отрабатывается макросом.
Нормальный файл (который загружается макросом) во вложении.
К сообщению приложен файл: zakaz_zapreshhennogo_novyj_obr.xlsx (9.8 Kb)
 
Ответить
СообщениеДобрый день.
Благодарю Вас за комментарий, переоформила исходное сообщение.
Если файл, который я пытаюсь автоматом открыть и скопировать макросом, попытаться открыть просто, без макроса, то он открывается. Но открывается через ошибку:
"Ошибка в части содержимого в книге Файл для заказа Запрещенного Ассортимента .xlsx Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку "Да".
Нажимаешь "Да" и файл открывается. Как побороть эти файлы я не знаю, мучала своих программистов.
Часть файлов приходит от партнеров вот такая дефектная и макрос их не затягивает, а часть отлично отрабатывается макросом.
Нормальный файл (который загружается макросом) во вложении.

Автор - Vika101928
Дата добавления - 11.06.2025 в 14:44
NikitaDvorets Дата: Среда, 18.06.2025, 11:20 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 625
Репутация: 143 ±
Замечаний: 0% ±

Excel 2019
Добрый день.

Цитата
из нескольких маленьких файликов Excel


Для решения задачи было бы полезно добавить эти файлики.
 
Ответить
СообщениеДобрый день.

Цитата
из нескольких маленьких файликов Excel


Для решения задачи было бы полезно добавить эти файлики.

Автор - NikitaDvorets
Дата добавления - 18.06.2025 в 11:20
and_evg Дата: Среда, 18.06.2025, 11:59 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 481
Репутация: 83 ±
Замечаний: 0% ±

Excel 2007
Добрый день.
Попробуйте эту процедурку
[vba]
Код
Sub gatheringData()
Dim strTitle As String
Dim IngCounter As Long
Dim MyfileName As Variant
Dim IngLastRow As Long
Dim wbCentralWorkbook As Workbook
Dim wbDataWorkbook As Workbook

strTitle = "Выбор файлов с данными для сбора"
MyfileName = Application.GetOpenMyfileName(FileFilter:="All files (*.*), *.*", MultiSelect:=True, Title:="Files to Merge")

Set wbCentralWorkbook = ThisWorkbook
If IsArray(MyfileName) = True Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False

For IngCounter = LBound(MyfileName) To UBound(MyfileName)

Set wbDataWorkbook = Workbooks.Open(fileName:=MyfileName(IngCounter), corruptload:=2)

IngLastRow = wbDataWorkbook.Worksheets("Лист1").Range("A" & wbDataWorkbook.Worksheets("Лист1").Rows.Count).End(xlUp).Row
wbDataWorkbook.Worksheets("Лист1").Range("A2:F" & IngLastRow).Copy

IngLastRow = wbCentralWorkbook.Worksheets("СВОД").Range("B" & wbCentralWorkbook.Worksheets("СВОД").Rows.Count).End(xlUp).Row
wbCentralWorkbook.Worksheets("СВОД").Range("B" & IngLastRow + 1).PasteSpecial (xlPasteAll)

wbDataWorkbook.Close (True)
Next IngCounter
MsgBox "Готово!"

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Else:
MsgBox "Файлы не выбраны!"
End If
End Sub
[/vba]
 
Ответить
СообщениеДобрый день.
Попробуйте эту процедурку
[vba]
Код
Sub gatheringData()
Dim strTitle As String
Dim IngCounter As Long
Dim MyfileName As Variant
Dim IngLastRow As Long
Dim wbCentralWorkbook As Workbook
Dim wbDataWorkbook As Workbook

strTitle = "Выбор файлов с данными для сбора"
MyfileName = Application.GetOpenMyfileName(FileFilter:="All files (*.*), *.*", MultiSelect:=True, Title:="Files to Merge")

Set wbCentralWorkbook = ThisWorkbook
If IsArray(MyfileName) = True Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False

For IngCounter = LBound(MyfileName) To UBound(MyfileName)

Set wbDataWorkbook = Workbooks.Open(fileName:=MyfileName(IngCounter), corruptload:=2)

IngLastRow = wbDataWorkbook.Worksheets("Лист1").Range("A" & wbDataWorkbook.Worksheets("Лист1").Rows.Count).End(xlUp).Row
wbDataWorkbook.Worksheets("Лист1").Range("A2:F" & IngLastRow).Copy

IngLastRow = wbCentralWorkbook.Worksheets("СВОД").Range("B" & wbCentralWorkbook.Worksheets("СВОД").Rows.Count).End(xlUp).Row
wbCentralWorkbook.Worksheets("СВОД").Range("B" & IngLastRow + 1).PasteSpecial (xlPasteAll)

wbDataWorkbook.Close (True)
Next IngCounter
MsgBox "Готово!"

Application.DisplayAlerts = True
Application.ScreenUpdating = True
Else:
MsgBox "Файлы не выбраны!"
End If
End Sub
[/vba]

Автор - and_evg
Дата добавления - 18.06.2025 в 11:59
  • Страница 1 из 1
  • 1
Поиск:

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