【问题标题】:Excel VBA: Saving several sheets in a new workbookExcel VBA:在新工作簿中保存多张工作表
【发布时间】:2015-01-05 12:06:42
【问题描述】:

我正在寻找一种将工作表列表保存在新工作簿中的方法。 这很好用:

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

没有用。我尝试了不同的选项,在开头和结尾等处添加和删除引号。我发现讨论了从字符串变量中引用一页的主题,但从来没有像我这样的几页。

有什么建议吗?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这个想法是合理的,但问题是这样的:

    Array(Pgs)
    

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

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

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

    但是,这应该可以:

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

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

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

    【讨论】:

    • 我做了一些修改,但总的来说确实像你写的那样。完美!
    • @MārisBrants - 很高兴为您提供帮助。如果这解决了您的问题,请标记为答案。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多