Excelmacros有时会打破?

我做了一个macros来复制一个Excel电子表格,但是当它运行一次,它不会再运行?

Sub Add_Week() 'copy worksheet Dim test As Worksheet Sheets(1).Copy After:=Sheets(Sheets.Count) Set test = ActiveSheet 'extend date jamesdata = Range("D2") Firstdate = DateValue(jamesdata) seconddate = DateAdd("w", 7, Firstdate) Range("D2").Select ActiveCell.FormulaR1C1 = seconddate 'change sheet name newname = Range("D2").Text test.Name = newname End Sub 

试试这个代码。

 Sub Add_Week() Dim newDate As String 'Copy the last sheet Sheets(Sheets.Count).Copy After:=Sheets(Sheets.Count) 'Extend date newDate = DateAdd("w", 7, DateValue(Range("D2"))) 'The main problem is here, because sheet name can't accept "/, \ and single quote" 'Return value by "DateAdd" method include slash by default. 'So, I change it to "dd-mmm-yy" format. If you need others, modify format. 'But it need to valid for sheet name. 'Change data format to desire format (8-Jul-15) newDate = Format(newDate, "dd-mmm-yy") 'Set date value Range("D2") = newDate 'Change sheet name ActiveSheet.Name = newDate End Sub