Excel VBA:保存多张工作表至新工作簿

3
我正在寻找一种方法将工作簿中的工作表保存到新工作簿中。 以下代码可以实现此功能:
ThisWorkbook.Sheets(Array("a1", "a2")).Copy
ActiveWorkbook.SaveAs Filename:="myFile.xlsx", FileFormat:=51

然而,工作表列表总是不同的,因此我创建了一个字符串变量Pgs,其中包含括号中的文本"a1", "a2"

因此,它看起来像这样:

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

没有起作用。我尝试了不同的选项,添加和删除引号等。我发现有些主题讨论了如何从字符串变量中引用一页,但从未涉及像我这种情况下涉及多个页面的情况。

有什么建议吗?

1个回答

4
这个想法很不错,但问题在于:
Array(Pgs)

将创建一个类似于此的单索引数组:
Array[0] = "a1", "a2"

除非您的工作表命名为"a1", "a2",否则此方法将不起作用。

然而,以下方法应该有效:

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

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

  • Array[0] = a1
  • Array[1] = a2

我做了一些修改,但总体上像你写的那样。完美! - Māris Brants
1
@MārisBrants - 很高兴能帮到你。如果这解决了你的问题,请将其标记为答案。干杯。 - Jason Faulkner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接