首页 > 解决方案 > 从范围中复制特定的工作表名称

问题描述

我需要帮助,我希望这里有人可以帮助我:)

我有一个从 Avaya CMS 运行一些报告的工作簿。它运行报告并为 MAIN 表上的每个人的姓名创建一个新表。<< 这部分效果很好。

我的问题是我无法弄清楚如何使用 MAIN 工作表上的名称范围来仅选择那些特定工作表,然后将它们复制到新工作簿中。还有另外 2 个隐藏工作表。这就是我认为使用名称范围更容易,但我现在对任何事情都持开放态度。

这是它的外观截图:

在此处输入图像描述

抱歉,我不知道如何在此处上传工作簿,但希望图像应该足够好。感谢您的时间和帮助!

这是带有隐藏床单的图像。
这是带有隐藏床单的图像。

我需要它来排除前 3 张纸/

这是代码:

Sub Macro1()
    Dim sheetArray() As String
    Dim i As Integer
    i = 0

    For Each c In MainSheet.Range("A2:A20").Cells
        ReDim Preserve sheetArray(0 To i)
        sheetArray(i) = c.Value
        i = i + 1
    Next
    Sheets(sheetArray).Select
End Sub

标签: excelvba

解决方案


Sub move_Sheets()

Dim mSH As Worksheet
Set mSH = ThisWorkbook.Sheets("Main")

Dim shArray() As String
Dim i As Integer
i = mSH.Range("A" & Rows.Count).End(xlUp).Row
ReDim Preserve shArray(0 To i - 2)

For a = 2 To i
    shArray(a - 2) = mSH.Range("A" & a).Value
Next a

ThisWorkbook.Sheets(shArray).Move

End Sub

推荐阅读