2016-08-17 83 views
1

我需要VBA來檢查名稱爲「Secret_information」的文件夾是否已經存在。如果文件夾已經存在,那麼我需要將Worksheet(1)中的PDF和Excel保存到具有特殊名稱的文件夾中(請參見下面的VBA)。如果文件夾不存在,則在已​​打開的Excel文件已經找到的同一方向上創建新的文件夾。我製作了VBA,但無法正常工作。現在它不會創建xls文件只有pdf。此代碼還創建文件夾到桌面,我需要它創建我打開的Excel文件所在的文件夾內的文件夾。如何使它工作?檢查文件夾是否存在,並在那裏保存兩張VBA Excel

Sub CommercialPart() 
    Dim NewPath As String 
    NewPath = Application.ThisWorkbook.Path & "" & "Secret_information" 
    If Dir(NewPath, 63) = "" Then MkDir NewPath 

     ActiveWorkbook.Sheets(1).Select 
     ActiveSheet.ExportAsFixedFormat _ 
     Type:=xlTypePDF, _ 
     Filename:=NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "SC" & [Technical!I11] & "_" & Date & ".pdf", _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, _ 
     IgnorePrintAreas:=No, _ 
     OpenAfterPublish:=False 

     ActiveWorkbook.Sheets(1).Copy 
     ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Date 
     ActiveWorkbook.Close 
End Sub 

回答

1
  1. 你缺少在Application.ThisWorkbook.Path & "" & "Secret_information"\所以它應該是Application.ThisWorkbook.Path & "\" & "Secret_information"
  2. 你缺少擴展在該行的末尾,也格式化日期,它更具可讀性這樣 ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Date它應該是ActiveWorkbook.SaveAs NewPath & "\Secret_information_" & [Pricelist!E2] & "_" & "DD" & [Material!J8] & "_" & Format(Date,"ddmmmyy")& ".xls",xlExcel8

爲XLS添加文件格式爲xlExcel8

+0

謝謝!效果很好。唯一的問題是這個命令:'ThisWorkbook.Sheets(1).SaveAs NewPath&「\ Secret_information_」&[價格表!E2]&「_」&「SC」&[技術!I11]&「_」&格式Date,「ddmmmyy」)&「.xls」,xlExcel8'創建新的excel文檔,其中包含原始的所有工作表。我需要它只複製第一張紙。另外我希望它在創建時從表格中刪除所有功能。 – mrwd

+0

這些問題哪裏不是原帖子的部分。必須閱讀此:http://slash7.com/2006/12/22/vampires/可選閱讀:http://stackoverflow.com/help/someone-answers – cyboashu

+0

其實我問「我需要保存PDF和Excel從工作表(1)到該文件夾​​的特殊名稱「。您可以注意到,有人提到我需要從Worksheet第一號創建xls,而不是整個工作簿。無論如何感謝您的幫助,但沒有必要發送鏈接閱讀,如果你還沒有閱讀的問題... – mrwd

相關問題