2017-05-22 75 views
0

我需要使用Vba代碼將靜態DATE的工作表名稱設置爲。即明天名稱不應改變。請幫助我,這是我的代碼。如何使用靜態日期設置圖紙名稱?

Sub MaterialRequest() 
    Dim WS As Worksheet 
    Dim SheeetName As String 
    Dim i As Long 

    SheeetName = Format(Date, "dd-mm-yyyy") 
    Workbooks.Open Filename:=Range("Z3").Value 
    Worksheets.Add after:=Worksheets(Worksheets.Count) 

    For i = 1 To Worksheets.Count 
     Worksheets(i).Name = SheeetName & "ENGGMR" & i 
    Next 
End sub 

通過此代碼,第二天,工作表名稱自動更改。

+3

爲什麼你要遍歷每個工作表並重命名它們?只需使用「工作表(Worksheets.Count).Name = SheeetName&」ENGGMR「&Worksheets.Count'而不是for循環。 – UGP

+0

謝謝。它有幫助。 – Divya

回答

1

您應該使用WB.Worksheets這樣的工作簿來驗證worksheets以確保正在使用正確的工作簿。

然後你就可以直接重命名WS.Name

Sub MaterialRequest() 
    Dim WB As Workbook, WS As Worksheet 
    Dim newSheetDate As String 
    Dim i As Long 

    newSheetDate = Format(Date, "dd-mm-yyyy") 
    Set WB = Workbooks.Open(Filename:=Range("Z3").Value) 
    Set WS = WB.Worksheets.Add(after:=WB.Worksheets(WB.Worksheets.Count)) 
    WS.Name = newSheetDate & "ENGGMR" & WB.Worksheets.Count 
End Sub 

新的工作表我還建議完全限定範圍Filename:=Range("Z3").Value到工作表例如Filename:=ThisWorkbook.Worksheets("MySheetName").Range("Z3").Value以確保正在使用正確的工作表。

+0

謝謝。它幫助 – Divya

+1

@Divya如果此答案解決了您的問題,請考慮將其標記爲解決方案,以便其他用戶可以看到此問題已解決。 –