【发布时间】:2014-11-29 20:21:56
【问题描述】:
我正在尝试编写这个小宏来复制存储在数组中的几张工作表并将它们作为值粘贴到新工作簿,维护工作表的名称和顺序。我找到了一些解决方案,但与我的情况不完全匹配。
Sub tryit()
Dim wo As Workbook, wn As Workbook
Dim so As Worksheet, sn As Worksheet
Dim MyArray As Variant
MyArray = Array("ar1", "ar2", "ar3")
Set wo = ActiveWorkbook
Set wn = Workbooks.Add
For Each so In wo.Worksheets(MyArray)
Set sn = wn.Worksheets.Add
sn.Name = so.Name
so.Cells.Copy
sn.[A1].PasteSpecial xlPasteValues
sn.[A1].PasteSpecial xlPasteFormats
Next so
wn.SaveAs Filename:=ThisWorkbook.Path & "\" & "Report"
wn.Close savechanges:=True
End Sub
结果问题:
- 我正在将新工作表从数组添加到工作表 1、2 和 3,如何替换它们而不是删除?
- 添加工作表的顺序颠倒了(ark3、ark2、ark1)。
我见过一些使用 Lbound 和 Ubound 函数的解决方案,但我不确定如何将它们与循环结合起来,我想这会使代码更干净?
提前致谢。
【问题讨论】: