将工作表名称设置为用户定义的variables,然后在相同的代码中引用它

还在学习Excel和VBA,所以如果代码很可怕,或者这个答案很简单,我们都会很抱歉。

我有一套绑定到checkbox的工作表。 如果该框被选中,则它们将隐藏起来,并且在“SUMMARY”中绑定的行将被隐藏,反之亦然。 我正在试图制作一组表格,将其重命名为“控制”表格中特定单元格的内容,然后像“控制”表格中的名称一直是其名称一样操作。 我试过设置variables,build立范围,每次都失败了。 我需要做什么才能根据“控制”I9中的单元格重命名现有工作表,然后从这一点开始进行操作,就好像新名称始终是名称一样?

最好是checkbox只是做一个新的工作表,格式化我需要的,然后命名为用户定义的variables?

Application.ScreenUpdating = False If CheckBox40.Value = True Then DIM Name AS String Name = Sheets("Control").Cells(9 "I") ActiveWorkbook.Unprotect Sheets("ALL 1").Unprotect Sheets("SUMMARY").Unprotect Sheets("ALL 1").Visible = -1 Worksheets("SUMMARY").Rows("25").EntireRow.Hidden = False Worksheets("SUMMARY").Cells(25, 2).Value = "ALL 1" Worksheets("SUMMARY").Cells(25, 3).Value = "INTEGRATED AUTOMATION" Worksheets("SUMMARY").Cells(25, 4).Value = "='Control'!F26" Worksheets("SUMMARY").Cells(25, 5).Value = "='Control'!G26" Worksheets("SUMMARY").Cells(25, 6).Value = "='ALL 1'!$H$69" Worksheets("SUMMARY").Cells(25, 7).Value = "='ALL 1'!$J$69" Worksheets("SUMMARY").Cells(25, 8).Value = "='ALL 1'!$N$69" Worksheets("SUMMARY").Cells(25, 9).Value = "='ALL 1'!$P$69" Worksheets("SUMMARY").Cells(25, 10).Value = "=SUM(F25:I25)/D25" Worksheets("SUMMARY").Cells(25, 11).Value = "=M25/F3" Worksheets("SUMMARY").Cells(25, 12).Value = "='ALL 1'!$U$69" Worksheets("SUMMARY").Cells(25, 13).Value = "=M25/$K$57" ActiveWorkbook.Protect True, True Sheets("ALL 1").Protect True, True Sheets("SUMMARY").Protect True, True Sheets("ALL 1").Name = Name End If If CheckBox40.Value = False Then ActiveWorkbook.Unprotect Sheets("ALL 1").Unprotect Sheets("SUMMARY").Unprotect Sheets("ALL 1").Visible = 2 Worksheets("SUMMARY").Rows("25").EntireRow.ClearContents Worksheets("SUMMARY").Rows("25").EntireRow.Hidden = True ActiveWorkbook.Protect True, True Sheets("ALL 1").Protect True, True Sheets("SUMMARY").Protect True, True Sheets("ALL 1").Name = Name End If Application.ScreenUpdating = True End Sub 

使用工作表variables来保存重命名的工作表,然后使用它来构build公式:

 DIM myName AS String 'don't use "name" as the name of a variable, it's a property Dim ws as worksheet MyName = Sheets("Control").Cells(9 "I") set ws = worksheets("All 1") 'point to "All 1" ws.name = MyName 'rename All 1 to something else Worksheets("SUMMARY").Cells(25, 12).Value = "='" & ws.name & "'!$U$69" 'keeps pointing to whatever All 1 is now called