Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 按给定范围命名图纸_Vba_Excel - Fatal编程技术网

Vba 按给定范围命名图纸

Vba 按给定范围命名图纸,vba,excel,Vba,Excel,我有这段代码,我有点困在一个解决方案上,不知道您是否可以帮助我: Private Sub CommandButton2_Click() Dim wsn As Range Set wsn = Worksheets("Formula Sheet").Range("C1:C26") Worksheets("Sheet1").Select ActiveSheet.Next.Select Do Until ActiveSheet.Name = "Summary Sheet" ActiveSheet.Unp

我有这段代码,我有点困在一个解决方案上,不知道您是否可以帮助我:

Private Sub CommandButton2_Click()
Dim wsn As Range
Set wsn = Worksheets("Formula Sheet").Range("C1:C26")
Worksheets("Sheet1").Select
ActiveSheet.Next.Select
Do Until ActiveSheet.Name = "Summary Sheet"
ActiveSheet.UnprotectPassword:="admin"
ActiveSheet.Name = (wsn + x)
x = x + 1
With Worksheets(ActiveSheet.Name)
.Protect Password:="admin", userinterfaceonly:=True
.EnableOutlining = True
.EnableAutoFilter = True
End With
ActiveSheet.Next.Select
Loop
Worksheets("Sheet1").Select
End Sub
我试图实现的是一种以表1命名所有表的方法,但在汇总到公式表上列出的值范围(公式表上的C1:C26)之前,我将x作为变量输入,但我希望它将表2命名为C1表3 C2,依此类推,我如何实现值范围(C1:C26)的选择下一个函数如果选择了此值,则不要再次使用

希望这是清楚的:)

试试这个:

x = 1    
Do Until ActiveSheet.Name = "Summary Sheet"
ActiveSheet.UnprotectPassword:="admin"
ActiveSheet.Name = wsn.Cells(x, 1)
x = x + 1

'etc.
Private Sub CommandButton2_Click()
Dim wsn As Range
Set wsn = Worksheets("Formula Sheet").Range("C1:C26")
set ws = Worksheets(Worksheets("Sheet1").Index + 1)
Do Until ws.Name = "Summary Sheet"
ws.UnprotectPassword:="admin"
ws.Name = wsn.Cells(x, 1)
x = x + 1
With ws
.Protect Password:="admin", userinterfaceonly:=True
.EnableOutlining = True
.EnableAutoFilter = True
End With
set ws = Worksheets(ws.Index + 1)
Loop
Worksheets("Sheet1").Select
End Sub
编辑以下评论:

试试这个:

x = 1    
Do Until ActiveSheet.Name = "Summary Sheet"
ActiveSheet.UnprotectPassword:="admin"
ActiveSheet.Name = wsn.Cells(x, 1)
x = x + 1

'etc.
Private Sub CommandButton2_Click()
Dim wsn As Range
Set wsn = Worksheets("Formula Sheet").Range("C1:C26")
set ws = Worksheets(Worksheets("Sheet1").Index + 1)
Do Until ws.Name = "Summary Sheet"
ws.UnprotectPassword:="admin"
ws.Name = wsn.Cells(x, 1)
x = x + 1
With ws
.Protect Password:="admin", userinterfaceonly:=True
.EnableOutlining = True
.EnableAutoFilter = True
End With
set ws = Worksheets(ws.Index + 1)
Loop
Worksheets("Sheet1").Select
End Sub

这就是我想要它做的,但现在它在行(ActiveSheet.Next.Select)上给了我一个错误,我该如何克服这个问题?@Nindi,检查我答案中的加法。是该行的第一次还是第二次出现引发错误?此代码使代码中产生更多错误。是否可以忽略错误消息,因为它确实执行了我想要的操作,但当它到达摘要页OK时会带来错误。这不是最优雅的方式,但是你可以在抛出错误的行之前添加错误恢复。我真的不想,但我不知道为什么我会出现这个错误。你的工作簿从左边的“公式表”开始有30张表吗;“一般首页”;“第1张”。。其他26页;广告栏中的“汇总表”?很抱歉,忘记编辑一般顶部的表,即现在的表1,但您是从所有29张表开始,还是要将“表1”之后的表重命名为
公式表
表上的
C1:C26
中的任何一张表,还是到达
汇总表
表。我很清楚:)