2017-04-25 133 views
0

在工作中,我一直在嘗試創建一個宏,它會自動清除一定範圍的內容 - 範圍是B78:G83。創建一個重置文件並保存爲新的日期的宏

清除此範圍後,我希望宏以新名稱保存當前文件。新的名稱應該是當前的一天,格式爲「DD MMMM」(兩位數字的名稱,在之間的空間,然後整整一個月的名字)

的文件路徑(FE)

「T :\ RESERVATIONS \ Duty Report \ 2017 \ 4。April \ 25 April \「

年份,月份和當前日期可變(因爲我們爲這些文件在工作時分別創建文件夾)。

Sub NieuweDag() 
' 
' NieuweDag Macro 
' Invoer wissen en opslaan als nieuwe dag 
' 
' Sneltoets: Ctrl+q 
' 
    Range("B78:G83").Select 
    Range("G82").Activate 
    Selection.ClearContents 

    Dim FilePath As String 
    Dim NewName As String 

    FilePath = "T:\RESERVATIONS\Duty Report\": NewName = FilePath & Year(Now()) & "\" & Month(Now()) & ". " & MonthName(Now()) & "\" & Format(Date, "dd mmmm") & ".xlsm" 

    ActiveWorkbook.SaveAs Filename:=NewName, FileFormat _ 
    :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 
End Sub 

這是我得到的,但它不起作用。我得到錯誤5.這是在荷蘭,所以讓我翻譯:

錯誤五期間推出:

無效的過程調用或參數無效

任何人在這裏可以幫助我出去了?

回答

2

正確格式爲MONTHNAME(月數,[刪節]),你應該使用

MonthName(Month(Now())) 

,而不是

MonthName(Now()) 

另外,你可以通過使用

提高你的代碼
Range("B78:G83").ClearContents 

而不是

Range("B78:G83").Select 
Range("G82").Activate 
Selection.ClearContents 
+0

非常感謝!這真的解決了這個問題,感謝(非常)快速的回答! –

1

你可以通過改變

NewName = FilePath & Year(Now()) & "\" & Month(Now()) & ". " & MonthName(Now()) & "\" & Format(Date, "dd mmmm") & ".xlsm" 

減少編碼需要創建NewName的量

NewName = FilePath & Format(Now(), "yyyy\\m. mmmm\\dd mmmm") & ".xlsm" 
相關問題