Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将范围项从一个工作表复制到新创建的工作表时获取运行时错误_Excel_Vba - Fatal编程技术网

Excel 将范围项从一个工作表复制到新创建的工作表时获取运行时错误

Excel 将范围项从一个工作表复制到新创建的工作表时获取运行时错误,excel,vba,Excel,Vba,我似乎无法将内容从一个工作表复制粘贴到另一个工作表-我遇到了一个运行时错误,我不明白为什么。。。请开导我 代码如下: 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 worksheetExist

我似乎无法将内容从一个工作表复制粘贴到另一个工作表-我遇到了一个运行时错误,我不明白为什么。。。请开导我

代码如下:

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
我把代码通读一遍,直到出现(单元格)。粘贴

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


提前感谢…

…未经测试,但其他操作可能会放弃选择。尝试将.Copy行直接放在.Paste行之前,然后给出起始单元格,如
Sheets(cell).Range(“A1”)。粘贴
,或者直接粘贴

Sheets("skeleton").Range("A1:S21").Copy Sheets(cell).Range("A1")

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

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。

您会遇到什么运行时错误以及错误发生在哪一行。如果这有助于其他用户,请将此标记为答案