excel - 临时文件试图保存到不存在的位置

标签 excel vba

我在使用以下模块时遇到问题。好吧,我的同事是,我不知道如何解决。当我自己运行 sub 时,它运行良好,但我的一些同事遇到了错误。看起来好像它正在尝试将临时文件保存到不存在的文件夹中。

有没有办法可以修改代码以将临时文件保存到特定位置?

谢谢你。

Sub Email_Sheet()

Dim oApp As Object
Dim oMail As Object
Dim LWorkbook As Workbook
Dim LFileName As String

ActiveSheet.Calculate
SubjectPanel = InputBox("Please Enter the Time") & " text"

'Turn off screen updating
Application.ScreenUpdating = False

'Copy the active worksheet and save to a temporary workbook
ActiveSheet.Copy
Set LWorkbook = ActiveWorkbook

'Create a temporary file
LFileName = LWorkbook.Worksheets(1).Name
On Error Resume Next
'Delete the file if it already exists
Kill LFileName
On Error GoTo 0
'Save temporary file
LWorkbook.SaveAs Filename:=LFileName

'Create an Outlook object and new mail message
Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)


With oMail
    .SentOnBehalfOfName = ""
    .To = "" & _
    "address"
    .CC = "" & _
    "other address"
    .Subject = SubjectPanel
    .Body = "Hello all," & vbNewLine & vbNewLine & _
            "body" & vbNewLine & vbNewLine & _
            "Thank you."
    .Attachments.Add LWorkbook.FullName
  .Display
End With

'Delete the temporary file and close temporary Workbook
LWorkbook.ChangeFileAccess Mode:=xlReadOnly
Kill LWorkbook.FullName
LWorkbook.Close SaveChanges:=False

'Turn back on screen updating
Application.ScreenUpdating = True
Set oMail = Nothing
Set oApp = Nothing

End Sub

最佳答案

在你的线路之后

LWorkbook.SaveAs Filename:=LFileName

把这一行:
Debug.Print LWorkbook.FullName

现在,当您的同事运行它时,请他们先打开 VBA 编辑器,并请他们确保显示立即窗口。然后让他们运行它,并询问他们错误后立即窗口中显示的内容。 (如果您说出实际错误是什么,以及它在代码中停止的位置,这也会很有用,但我会对此做出一些假设!)。

当我在新工作簿上用我的额外行运行您的代码时,我的即时窗口显示 C:\Users\Simon\Documents\Sheet1.xlsx .然后它使用该名称和文件夹保存临时文件。

如果您可以询问您的同事他们的内容,那么您可以了解该文件夹是否可能不允许写入权限(请他们尝试将某些内容保存到该文件夹​​中)。

如果这是问题所在(如果我假设正确!),那么您需要更改您的 SaveAs行添加他们确实有权限的路径。例如:
LWorkbook.SaveAs Filename:= "C:\Users\xxx\Documents\" & LFileName

关于excel - 临时文件试图保存到不存在的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869131/

相关文章:

excel - 有没有办法使用 Excel VBA 更新 powerquery 中的过滤器?

c# - Word Addin VBA-C# 转换,InputBox

vba - 使用 VBA 宏将每个 Excel 工作表另存为单独的工作簿

vba - 对于导致类型不匹配的每个循环条件

vba - 异常 - vba 错误 : object variable or with block variable not set

vba - Microsoft Excel 2013 屏幕更新失败

vba - 找出所有不是的

excel - 匹配两列中的单元格值,如果匹配,则将另一个值复制到空白单元格

excel vba - Selenium 查找元素

excel - 这是选择性循环 excel vba 中目录的最佳方法(如果有的话)