在工作中,我一直在尝试创建一个自动清除某个范围的宏 - 只有内容 - ,范围是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:
无效的程序调用或无效的参数
这里的任何人都可以帮助我吗?
答案 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"