Excel VBA:在一个新的工作簿中保存几张纸

我正在寻找一种方法来保存新工作簿中的工作表列表。 这运作良好:

ThisWorkbook.Sheets(Array("a1", "a2")).Copy ActiveWorkbook.SaveAs Filename:="myFile.xlsx", FileFormat:=51 

但是,工作表的列表总是不同的,所以我在这种情况Pgs一个stringvariablesPgs ,括号"a1", "a2"中的文本。

所以看起来像这样:

 ThisWorkbook.Sheets(Array(Pgs)).Copy ActiveWorkbook.SaveAs Filename:="myFile.xlsx", FileFormat:=51 

不工作。 我尝试了不同的选项,从头到尾添加和删除引号。 我发现讨论从stringvariables中引用一个页面的主题,但从来没有像我这样的几个页面。

有什么build议么?

这个想法是健全的,但问题是这样的:

 Array(Pgs) 

将创build一个如下所示的单个索引数组:

 Array[0] = "a1", "a2" 

所以除非您的工作表被命名为"a1", "a2" ,否则这将不起作用。

但是,这应该工作:

 Pgs = "a1,a2" ThisWorkbook.Sheets(Split(Pgs, ",")).Copy 

由于Split函数将返回一个用逗号分隔的数组。 在这种情况下, Split(Pgs)会有一个数组:

  • 数组[0] = a1
  • 数组[1] = a2