Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Run-time error '1004': Application-defined or object-defined error, Run-time error '1004': Application-defined or object-defined error
 
Добрый день!

Подскажите пожалуйста как победить ошибку "Run-time error '1004': Application-defined or object-defined error"

На рабочем компе есть макрос который отлично работает уже как год без каких либо проблем, его цель, открыть excel обновить все данные далее сохранить данные в PDF и сделать рассылку по почте, все это происходит ежедневно по утрам.

Так вот в 2023 году начала лезть эта ошибка, причем сам макрос полностью выполняется, а ошибка вылетает при закрытии excel файла.
И если в выходные дни у меня этот файл в 2022 отрабатывался полностью на автомате, то теперь всплывает эта ошибка с которой нужно согласиться и только после этого файл excel закрывается.

Помогите пожалуйста, кто сталкивался, как это вылечить, заранее спасибо!
Код
Private Sub Workbook_Open()

Call MyMacro

Application.DisplayAlerts = False
    If Application.Workbooks.Count = 1 Then
    Application.Quit
    End If

End Sub

__________________________________________________________________________________________________


Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    Call MyMacro1
    
End Sub

___________________________________________________________________________________________________


Sub MyMacro1()
    Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Daily report.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Sheets("Свод").Select
    Range("A1").Select
    
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
  
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
    Set objOutlookApp = CreateObject("Outlook.Application")
End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)
    If Err.Number <> 0 Then
    Set objOutlookApp = Nothing: Set objMail = Nothing
    MsgBox "Не удалось создать новое сообщение"
    Exit Sub
End If
  
sTo = Range("B225").Value
sSubject = "Daily report"
sBody = "Daily report"
sAttachment = "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Daily report.pdf"
With objMail
    .To = sTo
    .CC = ""
    .BCC = ""
    .Subject = sSubject
    .Body = sBody
    .Attachments.Add sAttachment
    .Save
    .Send
End With
Set objOutlookApp = Nothing: Set objMail = Nothing
    
End Sub
Изменено: Arslan Ikhsanov - 19.01.2023 13:41:40
Макрос для автоматического ввода пароля и запуска обновления в запароленном для правок файле!
 

Добрый день!

Подскажите пожалуйста, цель следующая, есть файл с паролем на редактирование, необходимо, чтобы он открывался по времени под паролем для правки, далее обновлял все внешние и внутренние подключения, сохранялся и закрывался, у меня получилось так, но не очень работает:

Код
Sub MyMacro()
    Application.ScreenUpdating = False
    Set wb = ThisWorkbook
    Workbooks.Open Filename:= _
    "C:\Users\ЯЯЯЯЯЯЯЯЯ\Desktop\Òåñò_äëÿ_îáíîâëåíèÿ_ñ_ïàðîëåì.xlsm", Password:="12345", WriteResPassword:="12345"
    Set wb1 = ActiveWorkbook
    wb.Activate
    ActiveWorkbook.RefreshAll
    wb.Save
    wb1.Close
    Application.ScreenUpdating = True
End Sub

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

Спасибо!
Изменено: Arslan Ikhsanov - 11.07.2022 16:03:38
Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!
 
Добрый день

Как в сводной таблице Excel показать последние 14 дат, по дням, при условии, что таблица ежедневно обновляется и эти 14 дат должны смещаться с учетом новой даты!

Подскажите пожалуйста, возможно у кого-то были подобные кейсы

Спасибо
Сохраняю из Excel в PDF данных ровно на три листа PDF, но плюсом добавляются еще два пустых листа, как от них избавиться?, Импорт из Excel в PDF, как удалить пустые дополнительные листы
 
Добрый день!

Подскажите пожалуйста:
Сохраняю из Excel в PDF данных ровно на три листа PDF, но плюсом добавляются еще два пустых листа, как от них избавиться?
Помогите пожалуйста доработать макрос, авто открытия Excel, сохранения и закрытия, с ежедневным повторяющемся циклом!
 
Помогите пожалуйста доработать макрос, сейчас он работает при открытом файле Excel так: (по времени обновляет связи, далее сохраняет файл и параллельно сохраняет данные в PDF и далее делает рассылку PDF файла по почте).

Есть необходимость его усовершенствовать, таким образом, чтобы закрытый файл Excel открылся по расписанию, далее все процедуры описанные выше, и далее закрытие файла, и так, чтобы этот цикл повторялся ежедневно.

Заранее Вам спасибо за любую помощь!

Сейчас имею следующий код, который обрабатывает процедуры описанные выше:
Код
Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", OpenAfterPublish:=False
    Call MyMacro1
    Call NextRun
End Sub

Sub MyMacro1()
 Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    Sheets("Свод").Select
    Range("A1").Select
    
    Dim objOutlookApp As Object, objMail As Object
    Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
  
    On Error Resume Next
    Set objOutlookApp = GetObject(, "Outlook.Application")
    Err.Clear
    If objOutlookApp Is Nothing Then
    Set objOutlookApp = CreateObject("Outlook.Application")
End If
    objOutlookApp.Session.Logon
    Set objMail = objOutlookApp.CreateItem(0)
    If Err.Number <> 0 Then
    Set objOutlookApp = Nothing: Set objMail = Nothing
    MsgBox "Не удалось создать новое сообщение"
    Exit Sub
End If
  
sTo = Range("L49").Value
sSubject = "Ежедневный отчет PDF"
sBody = "Ежедневный отчет PDF"
sAttachment = "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf"
With objMail
    .To = sTo
    .CC = ""
    .BCC = ""
    .Subject = sSubject
    .Body = sBody
    .Attachments.Add sAttachment
    .Save
    .Send
End With
Set objOutlookApp = Nothing: Set objMail = Nothing
    
    Call NextRun
End Sub

Sub NextRun()
    TimeToRun = TimeValue("12:04:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Подскажите пожалуйста по макросу, обновление по времени + сохранение в PDF, Макрос, обновление по времени + сохранение в PDF
 
Добрый день!

Подскажите пожалуйста, что не хватает в моем макросе для обновления и сохранения по времени Excel, и после, сохранения в PDF файл, буду очень Вам признателен!
Так как сейчас он только сохраняет файл и обновляет в Excel, но не сохраняет в PDF!
Заранее Всем Спасибо!
Код
Sub MyMacro()
    ThisWorkbook.RefreshAll
    ThisWorkbook.Save
    Call NextRun
End Sub

Sub NextRun()
    TimeToRun = TimeValue("21:40:00")
    Application.OnTime TimeToRun, "MyMacro"
End Sub

Sub MyMacro1()
    Sheets(Array("Свод")).Select
    Sheets("Свод").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\Common\Отчеты к КБ\2022\Для рассылки PDF\Ежедневный отчет.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    Sheets("Свод").Select
    Range("A1").Select
End Sub

Sub Start()
    Call NextRun
End Sub

Sub Finish()
    Application.OnTime TimeToRun, "MyMacro", , False
End Sub
Изменено: Arslan Ikhsanov - 24.06.2022 10:13:19
Страницы: 1
Наверх