vba - 检查项目是否在 ParamArray VBA 中

标签 vba excel

我正在编写一个函数来在工作簿的所有工作表上运行一些宏,排除的工作表列表除外。我将排除工作表的列表作为 ParamArray 传递,但在对照 ParamArray 中的列表检查当前工作表时遇到问题。

Public Sub RunThingsOnSheets(ParamArray excludedSheets())

Dim ws as Worksheet
For Each ws In ActiveWorkbook.Worksheets
    If ws Not In excludedSheets Then  'In Pseudocode this is what I want
        "do things"
    End If
Next ws

End Sub

Public Sub Test()

Call RunThingsOnSheets(SheetOne, SheetTwo)

End Sub

最佳答案

Public Sub RunThingsOnSheets(ParamArray excludedSheets())
Dim ws As Worksheet, o, inList As Boolean

    For Each ws In ActiveWorkbook.Worksheets
        inList = False
        For Each o In excludedSheets
            If o.Name = ws.Name Then
                inList = True
                Exit For
            End If
        Next
        If Not inList Then
            Debug.Print "not in excludedsheets: " & ws.Name
        End If
    Next ws

End Sub

Public Sub Test()

    RunThingsOnSheets Sheet1, Sheet3

End Sub

关于vba - 检查项目是否在 ParamArray VBA 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29687322/

相关文章:

excel - 如何在没有 'Out of Memory' 异常的情况下将大型 DataGridView 导出到 Excel?

vba - 自定义字符串反转顺序 - 配对 2 位数字

sql server 2008 : importing data from excel 2003 file

vba - 我怎样才能 "force"Excel正确计算分页符?

vba - 在 VBA 中以编程方式创建事件监听器

excel - 删除不需要的字符并评估剩余的 excel

vba - Excel 公式将日期从 dddd mmmm dd, yyyy 转换为 dd/mm/yyyy

vba - ADODB 连接的记录集不完整

excel - 您可以使用组合框的值来选择单元格范围吗

vba - 在运行宏之前处理工作表更改事件