附加文件时如何解决运行时错误'424'

问题描述 投票:0回答:1

我正在尝试编写一段代码,将其中的所有文件刮入一个目录,并且仅附加最新修改的文​​件。

虽然我有将附加文件的代码,但正是我在努力的那个代码的改编,并觉得自己犯了一些简单的错误。

我从本质上像这样的代码开始

  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':对象变量或未设置块变量'

感谢大家的帮助,因为我要疯了。

vba outlook
1个回答
0
投票

您将变量ClientDirectory视为对象,但是在原始代码中,它是一个简单的字符串。这就是为什么您的行:

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

失败。

[您还错过了在Dir操作中使用此变量的操作,该操作将其结果存储在requiredPDFs变量中。那就是包含文件名的变量。]​​>

© www.soinside.com 2019 - 2024. All rights reserved.