2014-12-24 75 views

回答

-1

您可以使其触发事件。

1)将下面的代码放在“名称”选项卡的工作表对象中。

2)将所有表code names放在第一列(无标题)的“名称”表中。

3)将您选择的标签名称放在第二列中的相应工作表中。

当您更改第二列中的值时,图纸名称应该会自动更改。

CODE

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim sheetName As String 
    Dim sheetCodeName As String 

    If Target.Column = "2" Then 
     sheetName = Target.value 
     sheetCodeName = Target.Offset(0, -1).value 

     For Each Sheet In ActiveWorkbook.Worksheets 
      If Sheet.CodeName = sheetCodeName Then 

       On Error GoTo INVALIDCOLUMNNAME: 
       Sheet.name = sheetName 
       On Error GoTo 0 

      End If 

     Next Sheet 

    End If 

Exit Sub 

INVALIDCOLUMNNAME: 
msgbox "Invalid Column Name" 

End Sub 
+0

这样做。谢谢 :) –

0
Sheets(#).Name = Range("cell location").Value 

#指的是纸张的索引号和cell location是小区的地址(例如A2E17

你会想然而,因为它会放一些错误周围的处理如果您已经有一个同名的工作表,则出错:

On Error Resume Next 
Sheets(#).Name = Range("cell location").Value 
If Err.Number > 0 Then 
    Err.Clear 
    Msgbox Range("cell location").Value & " name already exists!" 
End If 
+0

谢谢您的回答:)。你可以把完整的代码?我是VBA的初学者,我会检查如何处理错误,谢谢你的提示 –

+0

不要忘记接受,如果它的工作。 – Chrismas007

+0

@SergeInácioStack Overflow是代码编写人员获取特定问题帮助的地方。一般来说,它不是为用户编写整个代码而设计的。我的答案将解决您的具体问题,但如果您正在寻找某人为您编写代码,您可能不得不寻找其他地方。我为你添加了一个示例错误处理程序,但对于其他代码,您将自行编写。 – Chrismas007

相关问题