Добрый день, уважаемые форумчане! Подскажите, пожалуйста, в чем может быть проблема и как ее решить. Уже несколько лет я пользуюсь макросом, который из нескольких маленьких файликов 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))
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))
Как этого можно избежать? Файл, при загрузке которого возникает ошибка во вложении.
Добрый день, уважаемые форумчане! Подскажите, пожалуйста, в чем может быть проблема и как ее решить. Уже несколько лет я пользуюсь макросом, который из нескольких маленьких файликов 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))
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
Первая проблема в оформлении кода тегами в соответствии с правилами форума, а вторая это похоже файл "битый" у меня при открытии неудалось прочитать содержимое.
Первая проблема в оформлении кода тегами в соответствии с правилами форума, а вторая это похоже файл "битый" у меня при открытии неудалось прочитать содержимое.and_evg
Добрый день. Благодарю Вас за комментарий, переоформила исходное сообщение. Если файл, который я пытаюсь автоматом открыть и скопировать макросом, попытаться открыть просто, без макроса, то он открывается. Но открывается через ошибку: "Ошибка в части содержимого в книге Файл для заказа Запрещенного Ассортимента .xlsx Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку "Да". Нажимаешь "Да" и файл открывается. Как побороть эти файлы я не знаю, мучала своих программистов. Часть файлов приходит от партнеров вот такая дефектная и макрос их не затягивает, а часть отлично отрабатывается макросом. Нормальный файл (который загружается макросом) во вложении.
Добрый день. Благодарю Вас за комментарий, переоформила исходное сообщение. Если файл, который я пытаюсь автоматом открыть и скопировать макросом, попытаться открыть просто, без макроса, то он открывается. Но открывается через ошибку: "Ошибка в части содержимого в книге Файл для заказа Запрещенного Ассортимента .xlsx Выполнить попытку восстановления? Если вы доверяете источнику, из которого получена книга, нажмите кнопку "Да". Нажимаешь "Да" и файл открывается. Как побороть эти файлы я не знаю, мучала своих программистов. Часть файлов приходит от партнеров вот такая дефектная и макрос их не затягивает, а часть отлично отрабатывается макросом. Нормальный файл (который загружается макросом) во вложении.Vika101928
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)
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)