Страницы: 1
RSS
Закрыть файлы сгенерированые SAP
 
Добрый день.
После обработки sql запросом - генерируються три отчета с именами:
SAPWeeklyMvts.xlsx
SAPWeeklyMvtsIT08.xlsx
SAPWeeklyMvtsAT01.xlsx
и сразу открываються
их потом посредством либо VBA либо SQL запроса нужно закрыть и приступить к следующим операциям...
в макросах я зелёный... ( даже салатовый ) и пока всё пишеться методом проб и ошибок
Пока ничего не получаеться, поиском пользовался пробовал разные варианты но никак...
пробовал следующее:
Код
Sub CloseMVM()


sName = "SAPWeeklyMvts.xlsx"
Workbooks(sName).Close
sName2 = "SAPWeeklyMvtsAT01.xlsx"
Workbooks(sName2).Close
sName3 = "SAPWeeklyMvtsIT08.xlsx"
Workbooks(sName3).Close

End Sub
но на строчке Workbook(sName).Close - выбивает ошибку Subscript out of range.
Файлы нужно просто закрыть без всяких сохранений.
Помогите люди добрые.
Изменено: sabotazh - 15.04.2018 12:49:32
 
sabotazh,у Вас две последние книги имеют одинаковые названия.
 
Цитата
Anchoret написал:
у Вас две последние книги имеют одинаковые названия.
Изменил спасибо, пока копировал - не то название вставил.
от этого ошибка не исчезла.
 
Как макрос узнает, какую из книг закрывать? А вдруг у Вас по папкам раскиданы 25 одинаковых?
 
я пробовал вместо
Код
sName = "SAPWeeklyMvts.xlsx"

прописать как
Код
sName = "C:\Users\horzovm\Desktop\prep\SAPWeeklyMvts.xlsx"

но и это не помогло, уверен что нужно как то обозначить эти файлы но не знаю как.
 
Проблема в том, что SAP создает автоматически НОВЫЙ экзмемпляр Excel, в котором и создает новый файл. И поэтому из своего экземпляра Вы не можете достучаться до книги.
Попробуйте таким образом достучаться:
Код
Dim wb as workbook
sName = "C:\Users\horzovm\Desktop\prep\SAPWeeklyMvts.xlsx"
Set wb = GetObject(sName)
If Not wb Is Nothing Then
    wb.Close True
End If
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий Щербаков написал:
Проблема в том, что SAP создает автоматически НОВЫЙ
Спасибо!
попробовал этот вариант -  закрыло, сейчас у нас SAP Downtime и в програму не могу зайти чтоб сгенерировать новые файлы.
завтра уже смогу попробовать.
Для того чтоб закрыло все три файла нужно трижды прописать этот код только с изменением самого пути к файлу?
Изменено: sabotazh - 15.04.2018 13:39:34
 
Цитата
sabotazh написал:
нужно трижды прописать этот код
Да
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий Щербаков написал:
Да
Большое Вам спасибо.!
Попробую в понедельник - напишу.
 
Попробовал так:
Код
Sub CloseMVM()

Dim wb As Workbook
sName = "C:\Users\horzovm\Desktop\1C8vsSAP\prep\SAPWeeklyMvts.xlsx"
Set wb = GetObject(sName)
If Not wb Is Nothing Then
    wb.Close True
End If
Dim wb2 As Workbook
sName = "C:\Users\horzovm\Desktop\1C8vsSAP\prep\SAPWeeklyMvtsIT08.xlsx"
Set wb2 = GetObject(sName)
If Not wb2 Is Nothing Then
    wb2.Close True
End If
Dim wb3 As Workbook
sName = "C:\Users\horzovm\Desktop\1C8vsSAP\prep\SAPWeeklyMvtsAT01.xlsx"
Set wb3 = GetObject(sName)
If Not wb3 Is Nothing Then
    wb3.Close True
End If

End Sub

Файлы которые сгенерировал SAP - закрывает но остаётся пустое окно екселя.
Буду искать как сделать чтоб и его не было.
Спасибо большое!
Изменено: sabotazh - 15.04.2018 15:24:56
 
Цитата
sabotazh написал: в понедельник - напишу.
Вот это я прозевал! Уже понедельник!!! :)
 
Смотрите в сторону Application.Quit
 
Цитата
vikttur написал:
Вот это я прозевал! Уже понедельник!!!
неее :) downtime закончился... что то скоро они сегодня.

to Юрий М
как раз у Вас на форуме нашел - Application.Quit
сейчас буду пробовать - спасибо!
Страницы: 1
Наверх