如何使用 Excel VBA API 在工作簿中获取多个选定的工作表句柄

Posted

技术标签:

【中文标题】如何使用 Excel VBA API 在工作簿中获取多个选定的工作表句柄【英文标题】:How to fetch multiple selected sheets handles in a workbook using Excel VBA API 【发布时间】:2012-01-10 10:07:55 【问题描述】:

有一种方法可以选择多个 Excel 工作表,然后对它们执行一些操作,例如打印。但是给定一个工作簿,我如何知道选择了哪些工作表。有一个 vba 属性 Application->ActiveSheet 它为我们提供了当前活动表,但我找不到任何方法来为此获取多个表。

【问题讨论】:

【参考方案1】:

这是你想要的吗?

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim SelectedSheets() As String
    Dim n As Long, i As Long

    n = 0
    For Each ws In ActiveWindow.SelectedSheets
        ReDim Preserve SelectedSheets(n)
        SelectedSheets(n) = ws.Name
        n = n + 1
    Next

    For i = LBound(SelectedSheets) To UBound(SelectedSheets)
        '~~> This will give you the list of selected sheets
        Debug.Print SelectedSheets(i)        
    Next i

    '~~> The collection can also be used as below
    'Sheets(SelectedSheets).Copy
    'Sheets(SelectedSheets).Select   ' e.g., to re-select them later
End Sub

【讨论】:

以上是关于如何使用 Excel VBA API 在工作簿中获取多个选定的工作表句柄的主要内容,如果未能解决你的问题,请参考以下文章

在 VBA 中使用 SQL 连接两个 Excel 工作簿中的数据(只读错误)

excel里面我想 用VBA实现调用另一个工作簿中的数据怎么解决

使用 VBA 宏从 Excel 工作簿中取消选择所有复选框

Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码

在一个 Excel 工作簿中拆分具有相同名称范围的工作表 - Excel VBA

如何在保存到 OneDrive 的 Excel 工作簿中运行 SQL 查询?