小编use*_*240的帖子

检查密钥是否在Excel VBA中的集合中的通用方法

我的代码中有不同的集合.有些持有对象(各种类型),其他有类型(如Long).

有没有办法检查Collection中是否包含适用于类型和对象的键?

到目前为止,我有两个功能.

第一个功能:

Private Function ContainsObject(objCollection As Object, strName As String) As Boolean
    Dim o As Object
    On Error Resume Next
    Set o = objCollection(strName)
    ContainsObject = (Err.Number = 0)
    Err.Clear
End Function
Run Code Online (Sandbox Code Playgroud)

第二功能:

Private Function ContainsLong(AllItems As Collection, TheKey As String) As Boolean
    Dim TheValue As Long
    On Error Resume Next
    TheValue = AllItems.Item(TheKey)
    ContainsLong = (Err.Number = 0)
    Err.Clear
End Function
Run Code Online (Sandbox Code Playgroud)

这两个函数的原因是如果我传递一个具有Longs对的Collection(函数总是返回False),ContainsObject似乎不起作用.

PS:第一个功能是来自Test的第三个答案的副本或检查表是否存在

excel vba excel-2010

10
推荐指数
1
解决办法
2万
查看次数

告诉 mypy 我确实知道返回参数的类型

以下代码从 mypy 中产生一个可以理解但错误的错误:

from typing import List, Union, Any

class classA():
    def __init__(self, name: str) -> None:
        self.__name = name

    def __eq__(self, other: Any) -> bool:
        if (type(self) == type(other)):
            return (self.name == other.name)
        return False

    @property
    def name(self) -> str:
        return self.__name


class classB():
    def __init__(self, id: int) -> None:
        self.__id = id

    def __eq__(self, other: Any) -> bool:
        if (type(self) == type(other)):
            return (self.id == other.id)
        return False

    @property
    def id(self) -> int:
        return self.__id


class classC():
    def …
Run Code Online (Sandbox Code Playgroud)

python-3.x mypy

4
推荐指数
1
解决办法
282
查看次数

标签 统计

excel ×1

excel-2010 ×1

mypy ×1

python-3.x ×1

vba ×1