Excel VSTO工作表唯一标识符

我正在寻找一种方法来创build唯一的Worsksheet标识符,这将至less考虑名称和内容。 如果任何工作表值被改变,那么标识符也会改变。 我已经检查了GetHashCode(),但由于某种原因每次我调用这个方法在它总是改变的同一张纸上。 任何想法如何创build标识符/哈希码

Excel.Worksheet sheet2 = (Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet; var hash = sheet2.GetHashCode(); 

工作表的CodeName 一个唯一的标识符。 VSTO使用CodeName属性作为工作表的内部名称(可能是Sheet1,Sheet2等),当它在工作簿中使用Worksheets创build项目时。

在VBA接口中,可以在VBA IDE中更改此属性 – 这是用于属于每个Worksheet的类模块的名称。

只有在devise时,该属性才能在运行时更改。 虽然该属性可能似乎反映了工作表的标题(用户看到的名称,可以在用户界面中更改),但两者并未链接。

有关更多信息,请参阅:

https://msdn.microsoft.com/en-us/library/office/ff837552.aspx?f=255&MSPPError=-2147217396

http://www.cpearson.com/excel/RenameProblems.aspx