首次尝试复制时,在VBA中出现“运行时错误1004:工作表类的复制方法失败”

时间:2019-06-20 13:22:57

标签: excel vba excel-2003 office-2003

(对不起,我的英语不好:不是第一语言:)) 我正在编写一个VBA Excel 2003例程,该例程运行一个文件中的50多个工作表,一个一个地复制工作表(作为临时副本),然后在删除这些临时副本并返回其计算结果之前对它们执行操作。工作表内容。 更精确地说:代码是从内部具有单个(隐藏)工作表的外部文件中调用的。当我打开文件时,它将运行一个代码以在Excel中创建一个新的工具栏,当我按下工具栏上的一个按钮时,上面描述的代码就会运行。

我知道不保存文件并执行许多副本会触发此错误,但是现在它是在第一次尝试时触发的(我已关闭并重新打开所有内容多次,以确保不会保留未保存的情况)我)。

这是触发问题的代码,对不起,格式化不当:

ActiveWorkbook.Worksheets("NAME OF THE FIRST WORKSHEET I WANT TO COPY").Copy ThisWorkbook.Worksheets("HiddenSheet")

Disclamer:工作表的名称由For..Next遍历ActiveWorkbook.Worksheets数组找到,但是即使我自己硬编码该名称,代码也无法正常工作。

这是更大的代码块,更清楚了:

Set sourceWorkbook = ActiveWorkbook
For index = 1 To sourceWorkbook.Worksheets.Count
    sourceWorkbook.Activate 'not sure if this is even needed
    Set currWorksheet = sourceWorkbook.Worksheets(index)
    currWorksheet.Copy ThisWorkbook.Worksheets("HiddenSheet")
Next index

结果现在是一致的:

  

运行时错误'1004'   工作表类的复制方法失败。

在此先感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

一些有用的准则:

<form [formGroup]="form" (ngSubmit)="save()">
        <newInput formControlName="email" /> // how do I pass this formControlName down?
        <newInput formControlName="password" /> //
        <button type="submit" id="btnLogin" type="button">Logar</button> 
</form>

Option Explicit
'Copy sheet
Sub CopySheet()

    Dim ws1 As Workbook, ws2 As Workbook

    'It's better to declare sheets and avoid activate
    Set ws1 = Workbooks("Book1")
    Set ws2 = Workbooks("Book2")

    'Copy sheet "Test" from ws1(Book1) to ws2 (Book2) after all sheets
    ws1.Worksheets("Test").Copy After:=ws2.Worksheets(Sheets.Count)

End Sub