我正在使用 C# 从 Excel VBA 迁移到 VSTO。在 VBA 中,我有一个 3 行自定义函数IsInCollection
,如下所示:
On Error Resume Next
Set obj = collectionObject(itemObject)
IsInCollection = Not (obj is Nothing)
我一直使用它来检查给定的工作簿是否打开,或者工作簿是否包含具有特定名称的工作表等。因为集合和项目参数被定义为对象,它可以与任何东西一起使用。
我正在尝试在托管代码中创建相同的实用程序函数/方法,并且正在苦苦挣扎。问题在于collectionObject(itemObject)
表达式。C# 不允许我像 VBA 那样只索引一个对象。
如果有人能指出我正确的方向,将不胜感激。从我的搜索中,我一直在研究 QueryInterface,但不确定这是否是我应该寻找的地方。似乎 Excel 对象以 . 的形式出现System._ComObject
,所以大概我需要以某种方式遍历它(?)。
TIA