2015-12-04 50 views
1

我有一個自動化的Excel工作表,下面的腳本是功能的一部分。當我點擊工作表上的按鈕時,它將完全保存到路徑中,並通過電子郵件發送給下一個要查看的人員。VBA腳本保存文件以更正從一臺計算機但不是其他計算機的路徑

從另一臺計算機運行時,它不會將其保存到路徑中。請注意,我刪除了錯誤處理程序。在刪除它之前,它仍會通過電子郵件發送附件,但不會保存到其他計算機的路徑。

所有用戶都可以完全訪問該文件夾。代碼在工作表中。如果我把它放在一個模塊中,然後點擊按鈕,什麼都不會發生。

調試顯示模塊卡在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 = "[email protected]" 
    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 

回答

2

更改驅動器號別名N

FPath = "N:\Administration\Vehicle Orders"

UNC路徑。

所以:

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

由於驅動器號只是別名,並且可以設置爲任何用戶想要的任何字母,使用它的變量可以產生錯誤。 UNC路徑將永遠不會改變,雖然(除非IT遷移服務器,但你會肯定知道,如果發生這種情況它發生之前:))

UNC路徑可以在Windows資源管理器中找到:

enter image description here

+0

您還需要確保任何運行代碼的計算機都映射到驅動器。 –

+0

如果您使用UNC路徑,則不需要映射的驅動器 - 是否「可以連接到路徑」? –

+0

是@TimWilliams - >謝謝澄清。確保任何運行代碼的計算機都可以連接到路徑。 –

相關問題