繁体   English   中英

错误1004重命名工作表

[英]Error 1004 renaming worksheets

我一直在VBA宏中遇到“错误1004-对象'_Worksheet'的方法'名称'”的问题。 基本上,此宏的想法是检查列的单元格(包含字符串),并将它们与我的工作簿的工作表名称进行比较。 如果在工作表的名称中没有一个值不出现的单元格,则宏应创建一个新的工作表,并将其重命名为该单元格内的值。

    For j = (RowStart + 1) To 500

    'allocate the value of the reference cell in cell_content
    cell_content = Worksheets("Worksheet1").Cells(j, ColStart).Value
    Switch = 0    

    'check if cell_content appears as the name of one of the worksheet
    For i = 1 To Sheets.Count
        If cell_content = Sheets(i).Name Then
            Switch = Switch + 1
        End If
    Next i

    'if it does not, the macro creates a new worksheets with the name of cell_content
    If Switch = 0 Then
        Set ws = Worksheets.Add(After:=Worksheets(Worksheets.Count))
            ws.Name = cell_content
    End If        
Next j

考虑一下ColStart和RowStart只是所考虑列的参考值,变量Switch用于定义是否需要创建新工作表。

问题是宏的最后一部分一直给我错误1004。有人知道这可能是什么问题吗?

非常感谢你

我想您的工作簿已锁定。 这样的小代码可在空的Excel上运行:

Public Sub TestMe()    
    Dim ws As Worksheet
    Set ws = Worksheets.Add(After:=Worksheets(Worksheets.Count))
    ws.Name = "CodeThatWorks"    
End Sub

您的代码无法正常工作的另一个可能原因是该名称就是这样ws.Name = "BadNamesIncludeThese:]\\?*[]" ,因此包含了工作表中不允许使用的特殊字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM