Excel VSTO工作表唯一标识符

时间:2016-04-13 20:01:11

标签: excel vba excel-vba vsto

我正在寻找一种创建唯一Worsksheet标识符的方法,该标识符至少会考虑名称和内容。如果更改了任何工作表值,则标识符也会更改。我已经检查了GetHashCode()但由于某种原因,每次我在同一张表上调用此方法时它总是会改变。任何想法如何创建标识符/哈希码

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

1 个答案:

答案 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

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