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

Vba 将工作表名称设置为用户定义的变量,然后在同一代码中引用它,vba,excel,Vba,Excel,仍在学习Excel和VBA,因此,如果代码很糟糕,或者这个答案很简单,请道歉 我有一套被绑在复选框上的床单;如果选中该框,则它们将退出隐藏状态,并且它们在“摘要”中绑定到的行将取消隐藏,反之亦然。我试图创建一组工作表,这些工作表被重命名为“控制”工作表中特定单元格的内容,然后像“控制”工作表中的名称始终是它们的名称一样进行操作。我尝试过设置变量,建立范围,但每次都失败了。我需要做什么才能根据“Control”I9中的单元格重命名现有图纸,然后从该点开始操作,就好像新名称一直是名称一样 让复选框简

仍在学习Excel和VBA,因此,如果代码很糟糕,或者这个答案很简单,请道歉

我有一套被绑在复选框上的床单;如果选中该框,则它们将退出隐藏状态,并且它们在“摘要”中绑定到的行将取消隐藏,反之亦然。我试图创建一组工作表,这些工作表被重命名为“控制”工作表中特定单元格的内容,然后像“控制”工作表中的名称始终是它们的名称一样进行操作。我尝试过设置变量,建立范围,但每次都失败了。我需要做什么才能根据“Control”I9中的单元格重命名现有图纸,然后从该点开始操作,就好像新名称一直是名称一样

让复选框简单地创建一个新的工作表,根据需要对其进行格式化,然后将其命名为用户定义的变量会更好吗

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

使用工作表变量保存重命名的工作表,然后使用该变量构建公式:

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

使用工作表变量保存重命名的工作表,然后使用该变量构建公式:

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

是否尝试根据指定单元格中的值设置图纸名称?是的,我可以这样做。问题是汇总表需要引用新命名工作表的单元格,这正是我遇到问题的地方。您始终可以通过其代码名引用工作表。代码名是固定的,不会更改。以Sheet1(summary)为例,Sheet1是代码名,summary是工作表选项卡名。Sheets(“summary”)。Select与Sheet1相同。请向右选择,但问题是我必须将“summary”单元格中的值设置为与具有变量名称的新工作表中的单元格相等。我想我需要知道是否可以在公式中使用可变工作表名称来提取所需的值。是否尝试根据指定单元格中的值设置工作表名称?是的,我可以这样做。问题是汇总表需要引用新命名工作表的单元格,这正是我遇到问题的地方。您始终可以通过其代码名引用工作表。代码名是固定的,不会更改。以Sheet1(summary)为例,Sheet1是代码名,summary是工作表选项卡名。Sheets(“summary”)。Select与Sheet1相同。请向右选择,但问题是我必须将“summary”单元格中的值设置为与具有变量名称的新工作表中的单元格相等。我想我需要知道我是否可以在公式中使用变量工作表名称来提取我需要的值。谢谢!我在拼命想办法解决这个问题。谢谢!为了解决这个问题,我把头撞在墙上。