(对不起,我的英语不好:不是第一语言:)) 我正在编写一个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' 工作表类的复制方法失败。
在此先感谢大家的帮助!
答案 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