VBA脚本保存文件,以纠正从一台计算机,而不是其他人的path

我有一个自动化的Excel工作表,下面的脚本是function的一部分。 当我单击工作表上的button时,它将完全保存到path中,并通过电子邮件发送给下一个要查看的人员。

从另一台计算机运行时,不会将其保存到path中。 请注意,我已经删除了error handling程序。 删除之前,它仍然会通过电子邮件附件,但不会保存到其他计算机的path。

所有用户都可以完全访问该文件夹。 代码在工作表中。 如果我把它放在一个模块中,点击button什么都不会发生。

debugging显示模块卡在saveas filepath部分。

任何帮助是极大的赞赏。

谢谢

Private Sub CommandButton1_Click() If WorksheetFunction.CountA(Range("$A27:$O32")) = 0 Then MsgBox "Order has no accessories. Please submit to Distribution.", vbOKOnly Exit Sub End If Dim objOutlook As Outlook.Application Dim objOutlookMsg As Outlook.MailItem Dim objOutlookRecip As Outlook.Recipient Dim objOutlookAttach As Outlook.Attachment Dim TheAddress As String Dim Attachment As String Dim FName As String Dim FPath As String Dim Fmail As String Dim FSection As String Dim Ddate As String FPath = "N:\Administration\Vehicle Orders" FName = Sheets("Company Vehicle Order Form").Range("A13").Text FSection = Sheets("Company Vehicle Order Form").Range("A25").Text Ddate = Date ActiveWorkbook.SaveAs Filename:= _ FPath & "\" & FName & " " & FSection & Ddate, _ FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Set objOutlook = CreateObject("Outlook.Application") Set objOutlookMsg = objOutlook.CreateItem(olMailItem) TheAddress = "ji@hdai.com" Attachment = FPath & "\" & FName & " " & FSection & Ddate & ".xlsm" With objOutlookMsg Set objOutlookRecip = .Recipients.Add(TheAddress) objOutlookRecip.Type = olTo Set objAoutlookAttach = .Attachments.Add(Attachment) .Subject = "Company Vehicle Order Form" .Body = "Good day. Please review the attached Vehicle Order Form approve/ omit Accessories. If omitting, just delete the part and click on 'Submit to Distribution' button in the bottom BLUE section. " & _ vbCrLf & vbCrLf & "Thank you. " .Importance = olImportanceHigh 'High importance .Send End With Set objOutlookMsg = Nothing Set objOutlook = Nothing ActiveWorkbook.Close End Sub 

更改中的驱动器号别名N

FPath = "N:\Administration\Vehicle Orders"

到UNCpath。

所以:

FPath = "\\myserver\mypath\Administration\Vehicle Orders"

由于驱动器号只是别名,可以设置为任何用户所需的任何字母,使用它的variables可能会产生错误。 尽pipeUNCpath永远不会改变(除非IT迁移服务器,但是您一定知道这是否发生之前)

UNCpath可以在Windows资源pipe理器中find:

在这里输入图像说明