Как исправить ошибку во время выполнения '424' при прикреплении файла - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь написать фрагмент кода, который очистит каталог для всех файлов в нем и прикрепит только последний измененный файл.

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

Я начал с кода, который по сути похож на этот

  Dim JobLocation As String
  JobLocation = InputBox("What is the Clients Name ?")
  ClientDirectory = "S:\Client Folder\" & JobLocation & "\Site Drawings\"
  RequiredPDFs = Dir(ClientDirectory & "*.pdf")
  Do While Len(RequiredPDFs) > 0
    .Attachments.Add ClientDirectory & RequiredPDFs
    RequiredPDFs = Dir
 Loop

Все это выглядит хорошо.

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

Sub Test()

Dim JobLocation As String
Dim objFile As Object
Dim dLastModifiedDate As Date
Dim strLastModifiedFilePath As String
Dim objMail As Outlook.MailItem
Dim ClientDirectory As Object

JobLocation = InputBox("What is the Clients Name ?")
ClientDirectory = "S:\Client Folder\" & JobLocation & "\Site Drawings\"

If ClientDirectory.Files.Count > 0 Then
    For Each objFile In ClientDirectory.Files
        If (objFile.DateLastModified > dLastModifiedDate) Then
          strLastModifiedFilePath = objFile.Path
          dLastModifiedDate = objFile.DateLastModified
        End If
    Next

  If strLastModifiedFilePath <> "" Then
      Set objMail = Outlook.Application.ActiveInspector.CurrentItem
      objMail.Attachments.Add strLastModifiedFilePath
  End If
End If

End Sub

Я ожидал, что это будет именно так и пролистать каждыйфайл, сравните его со следующим и затем только прикрепите то, что было LastModified.

В конечном итоге происходит следующее:

'Ошибка времени выполнения'91 ': переменная объекта или переменная блока не установлена'

Любая помощь приветствуется, так как я схожу с ума.

1 Ответ

0 голосов
/ 02 октября 2019

Вы рассматриваете переменную ClientDirectory как объект, но в исходном коде это простая строка. Вот почему ваша строка:

ClientDirectory = "S:\Client Folder\" & JobLocation & "\Site Drawings\"

fail.

Также вы пропустили, что эта переменная используется в операции Dir, которая сохраняет свой результат в переменной requiredPDFs. Это та переменная, которая содержит имена файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...