Excel C#:如何从Range对象获取工作表/工作簿名称和地址?

我有一个Excel.Application.SheetChange事件,我注册向其传递范围对象更改。

我试图从尽可能less的互操作调用中提取工作表名称,工作簿名称和地址。

有没有人有任何好点子? 例如像我怎样才能得到的范围的完整地址 ,然后做一些stringparsing来得到它?

这里是代码snippit:

  private void ws_change(Excel.Range target){ //Code to get target workbook name, worksheet name, and range address } 

非常感谢。

你应该看看各种属性:

 var sheet = range.Worksheet; var sheetName = sheet.Name; var workbook = (Workbook)sheet.Parent; var workbookName = workbook.Name; 

如果您确实想要沿着parsing路线走,您可以通过在Address索引器中指定External = true来获取范围的完全限定地址:

 var address = range.Address[true, true, XlReferenceStyle.xlA1, true, null]; // returns eg [Book1]Sheet1!A1 

有关详细信息,请参阅Address的文档 。