Добрый день. После обработки 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. Файлы нужно просто закрыть без всяких сохранений. Помогите люди добрые.
Проблема в том, что 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 и в програму не могу зайти чтоб сгенерировать новые файлы. завтра уже смогу попробовать. Для того чтоб закрыло все три файла нужно трижды прописать этот код только с изменением самого пути к файлу?
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 - закрывает но остаётся пустое окно екселя. Буду искать как сделать чтоб и его не было. Спасибо большое!