拆分名称并将其作为工作表名称

时间:2016-11-14 06:56:52

标签: vba excel-vba excel

我想拆分我的名字并将我的工作表名称作为拆分名称

例如:Rohit-Singh我的工作表名称应该是“Singh”我已经将全名作为工作表的代码。可以随便帮帮我

Sub dd()

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        ActiveSheet.Name = ActiveSheet.Range("A1")
    End If

End Sub

2 个答案:

答案 0 :(得分:1)

您显然想要使用Worksheet_Change事件。您应该在重命名工作表时添​​加一些错误处理,如果要更改此事件的值,请关闭Application.EnableEvents

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A1")) Is Nothing Then
        On Error Resume Next
        ActiveSheet.Name = Split(Range("A1"), "-")(1)

        If Err.Number <> 0 Then
            MsgBox "The name must be delimited using a ""-"" and no other special characters can be used", vbInformation, "Action Cancelled"
            Application.EnableEvents = False
            Range("A1") = ""
            Application.EnableEvents = True
        End If
        On Error GoTo 0
    End If

End Sub

答案 1 :(得分:0)

使用split函数将姓氏与姓氏分开,并将结果分配给数组。然后使用第二个元素命名工作簿。

Sub test()
 Dim MyArray() As String
 Dim name As String
    name = "Rohit-Singh"
    MyArray() = Split(name, "-")
    Debug.Print MyArray(0)
    Debug.Print MyArray(1)
End Sub