创建一个重置文件的宏并保存为新的一天

时间:2017-04-25 00:33:23

标签: excel vba excel-vba

在工作中,我一直在尝试创建一个自动清除某个范围的宏 - 只有内容 - ,范围是B78:G83。

清除此范围后,我希望宏以新名称保存当前文件。新名称应该是当天,格式为“dd mmmm”(名称的两位数字,两者之间的空格,然后是整月的名称)

文件路径为(f.e.)

“T:\ RESERVATIONS \ Duty Report \ 2017 \ 4。April。4月25日”

年,月和当前日期是可变的(因为我们在工作时为这些文件制作单独的文件夹)。

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.这是荷兰语,所以请允许我翻译:

  

发布期间的错误5:

     

无效的程序调用或无效的参数

这里的任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

正确的格式是MonthName(月份数,[缩写]),您应该使用

MonthName(Month(Now()))

而不是

MonthName(Now())

另外,您可以使用

增强代码
Range("B78:G83").ClearContents

而不是

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

答案 1 :(得分:1)

您可以通过更改

来减少创建NewName所需的编码量
NewName = FilePath & Year(Now()) & "\" & Month(Now()) & ". " & MonthName(Now()) & "\" & Format(Date, "dd mmmm") & ".xlsm"

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