临时文件尝试保存到不存在的位置

我在下面的模块有问题。 那么,我的同事们,我不知道如何解决。 当我自己运行这个子程序时,它运行正常,但是我的一些同事正在出错。 它看起来好像试图将临时文件保存到不存在的文件夹。

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

谢谢。

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行来添加他们有权限的path。 例如:

 LWorkbook.SaveAs Filename:= "C:\Users\xxx\Documents\" & LFileName 

您可以添加一个path到临时文件的保存位置。

 'Save temporary file LWorkbook.SaveAs Filename:="C:\Temp\" & LFileName