【发布时间】:2015-04-07 18:18:34
【问题描述】:
我想要达到的目标:
我想将工作表的副本分配给变量,以备后用。
我的尝试和结果
首先:下面的代码可以正常工作。我想实现这样的目标,但使用worksheet.copy。
Sub DuplicateSheetRenameFirst()
Dim wsDuplicate As Worksheet
Set wsDuplicate = Worksheets.Add
wsDuplicate.Name = "Duplicate"
End Sub
第二种:使用复制方法,在当前工作簿中创建工作表,但生成运行时错误424 - Object required。
Sub DuplicateSheetRenameSecond()
Dim wsDuplicate As Worksheet
Set wsDuplicate = Worksheets("Sheet1").Copy(after:=Worksheets(Worksheets.Count))
'above line : runtime error 424 object required, but the sheet is created
wsDuplicate.Name = "Duplicate"
End Sub
第三次:在新工作簿中创建工作表(因此创建书,然后工作表),但仍生成相同的运行时错误 424 - 需要对象。
Sub DuplicateSheetRenameThird()
Dim wsDuplicate As Worksheet
Set wsDuplicate = Worksheets("Sheet1").Copy
'above line : runtime error 424 object required, but the sheet is created in new workbook
wsDuplicate.Name = "Duplicate"
End Sub
解决方法:我可以修改任何 second 或 third 方式首先复制工作表,然后将变量设置为 activesheet,但是如果有一个步骤可以做到这一点,我正在徘徊。我不确定这是否会一直有效,因为活动表可能不是刚刚复制的那个。
问题:
是否有一种简单(一步)的方法可以将工作表的副本存储在变量中?最好没有错误或不使用错误处理程序过滤错误。
【问题讨论】: