0

我似乎无法将内容从一个工作表复制并粘贴到另一个工作表 - 我收到一个运行时错误,我不明白为什么......请赐教..

这是代码:

Dim cell As String

 For i = 2 To cat_lastRow
    Sheets("Sheet1").Select
    cell = ActiveSheet.Cells(i, cat_col).Value
    Sheets("skeleton").Range("A1:S21").Copy

    If Not worksheetExists(cell) Then
        ActiveWorkbook.Sheets.Add.Name = cell
    Else
        Sheets(cell).Cells.Clear
    End If

    Sheets(cell).Paste
    ...

 Next i

我浏览代码直到 Shees(cells).Paste

实际上,如何将所有项目从一个工作表复制到另一个工作表 - 如果存在具有该名称的工作表,则将其清除,然后从头开始将内容粘贴到其中。

提前致谢...

4

2 回答 2

0

...未经测试,但其他操作可能会放弃选择。尝试将 .Copy-line 直接放在 .Paste-line 之前,然后给出起始单元格,就像Sheets(cell).Range("A1").Paste或者直接

Sheets("skeleton").Range("A1:S21").Copy Sheets(cell).Range("A1")
于 2013-04-22T21:38:11.753 回答
0

包括您重新复制整个工作表的问题;您可能可以复制整个工作表并粘贴到新工作表中,而不必先清除单元格,或者您可以删除工作表(如果存在),然后复制所需的工作表并重命名:

Dim cell As String

For i = 2 To cat_lastRow
    Sheets("Sheet1").Select
    cell = ActiveSheet.Cells(i, 1).Value

    ' Turn off alert that you are deleting sheet
    Application.DisplayAlerts False
    ' Resume next on error if the sheet does not already exist
    On Error Resume Next
    Sheets(cell).Delete
    ' Rest your error handle
    On Error GoTo 0
    Sheets("skeleton").Copy after:=Sheets("Sheet3")
    ActiveSheet.Name = cell
 Next i

确保将 Application.DisplayAlerts True 放在代码的末尾,并且一旦删除了工作表,您可能还需要更改 on error。

于 2013-04-22T21:49:49.267 回答