我正在寻找一种创建唯一Worsksheet标识符的方法,该标识符至少会考虑名称和内容。如果更改了任何工作表值,则标识符也会更改。我已经检查了GetHashCode()但由于某种原因,每次我在同一张表上调用此方法时它总是会改变。任何想法如何创建标识符/哈希码
Excel.Worksheet sheet2 = (Excel.Worksheet)Globals.ThisAddIn.Application.ActiveSheet;
var hash = sheet2.GetHashCode();
答案 0 :(得分:1)
工作表的CodeName
是唯一标识符。 VSTO在工作簿中使用工作表创建项目时,使用CodeName
属性作为工作表的内部名称(可能是Sheet1,Sheet2等)。
在VBA界面中,可以在VBA IDE中更改此属性 - 它是用于属于每个工作表的类模块的名称。
仅在设计时才能在运行时更改属性。虽然该属性似乎反映了工作表的标题(用户看到的名称,并且可以在UI中更改),但这两者是不链接。
有关详细信息,请参阅:
https://msdn.microsoft.com/en-us/library/office/ff837552.aspx?f=255&MSPPError=-2147217396