[英]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.