我的代码应该创建额外的工作表,并根据单元格中的数据相应地复制数据。
Sub create_category()
Dim cell As Range
Dim wsname As Worksheet
Dim test As Boolean
For Each cell In Sheets("Data").Range("d4", Range("d" & Rows.Count).End(xlUp))
test = False
For Each wsname In ThisWorkbook.Sheets
If wsname.name = cell Then test = True
Next wsname
If test = False Then Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.name = cell
Sheets(cell.name).Range("d3").End(xlDown).Offset(1, 0) = cell
Next cell
Sheets("Data").Select
End Sub
程序一直执行,直到我在Next cell
之前添加了一行代码。
错误1004显示在For Each cell IN Sheets("Data").Range.....
上。
将使用与单元相同的名称创建图纸。我想复制与工作表同名的单元格到工作表中,因此我使用cell.name
。
1条答案
按热度按时间ryevplcw1#
当你写
安装程序将尝试在您的工作表“数据”上创建一个范围。范围的开始是单元格D4。对于Range的末尾,您可以写
Range("d" & Rows.Count).End(xlUp)
,但您不告诉Toshiba您希望从哪个工作表访问此单元格。虽然这对你来说似乎是显而易见的,但对你来说却不是。它将从活动工作表中读取单元格,这将导致无效的范围定义,并返回1004。**每次 * 访问
Range
或Cells
时,始终指定要在哪个工作表上工作。我建议使用中间变量,使其更容易调试。注意
Range
和Rows
前面的点(.
)。更新您下面的代码也有问题。将循环更改为
并添加以下函数
但我不确定逻辑:当前的代码将把工作表的名称(cell.Value)写入工作表-我怀疑这是您想要的。