VBA Excel:使用.Name值replace所有工作表.CodeName值

我想在VBA .codename所有工作表的' .codename '值更改为相应的.name值。 我正在尝试下面提到的代码,但它不工作。 好心提醒

 Dim Ws As Variant For k = 1 To 37 ThisWorkbook.VBProject.VBComponents(Ws(k)).CodeName = Ws(k).Name Next k 

首先,你必须进入macros安全 ,在我的Excel版本,这可以在开发工具栏上find。
然后在勾选“ 信任访问VBA项目对象模型 ”的框中打勾。
下面的代码应该允许你实现你想要的:

 Sub test() For Each ws In ThisWorkbook.Sheets ThisWorkbook.VBProject.VBComponents(ws.CodeName).Name = ws.Name Next ws End Sub