使用vba重命名excel工作表

时间:2016-06-27 18:47:42

标签: vba

尝试复制单元格值并根据单元格值重命名该工作表。单元格将包含蜇/整数 以下代码在重命名工作表时弹出错误

Sub Button1_Click()

'Set datasheet = Application.ActiveSheet
Dim row  As Integer
Dim col As Integer

row = 3
Column = 12
Do Until Sheets("BOM").Cells(row, Column) = ""
Sheets("Blank").Select
Application.DisplayAlerts = False
Sheets("Blank").Copy After:=Sheets(1)
Application.DisplayAlerts = False
Sheets("BOM").Select
Sheets("Blank (2)").Select

Sheets("Blank (2)").name = Cells(row, Column).Value  ==> Code breaks here 
row = row + 1
Loop

End Sub

2 个答案:

答案 0 :(得分:0)

由于以下

,您很可能会收到错误消息

您的新工作表名称为空白。  您的新工作表名称是> 31个字符。  它包含以下任何字符: \ / ? * [ or ]

其中任何一种都没有解决方法。只需确保您的新名称是有效的字符串。

答案 1 :(得分:0)

的Dinesh, 您收到该错误的原因是因为您试图为工作表提供一个空名称(新创建的工作表的单元格(3,12),当然,它将始终为空)。要解决此问题,您可以执行以下两种操作之一:从包含另一个工作表中的值的单元格中提取名称,或者在Sheets(“Blank(2)”)中放置一个值。设置之前的单元格(行,列)名字。两种选择如下:

Sub Button1_Click()
    'Set datasheet = Application.ActiveSheet
    Dim row  As Integer
    Dim col As Integer

    row = 3
    Column = 12
    Do Until Sheets("BOM").Cells(row, Column) = ""
        Sheets("Blank").Select
        Application.DisplayAlerts = False
        Sheets("Blank").Copy After:=Sheets(1)
        Application.DisplayAlerts = False
        Sheets("BOM").Select
        Sheets("Blank (2)").Select

        Sheets("Blank (2)").Cells(row, Column).Value = "Some_Sheet_Name"  ' <--Option #2
        Sheets("Blank (2)").Name = Cells(row, Column).Value               ' <--Option #2

       ' Sheets("Blank (2)").Name = Sheets("BOM").Cells(row, Column).Value ' <--Option #1

        row = row + 1
    Loop
End Sub

如果您有任何其他问题,请不要犹豫。