2012-08-31 38 views
1

我有这一点代码来获取工作表中最后一个单元格的地址。它返回“$ U $ 463”,我怎么能得到它仅返回U”的一部分?在excel地址的地址中获取列名部分

锐马丁斯

Range newContracts = activeWorksheet.Cells.SpecialCells(XlCellType.xlCellTypeLastCell); 

string address = newContracts.get_Address(); 
+0

这个问题有一些有用的信息http://stackoverflow.com/questions/297213/translate-an-index-into-an-excel-column-name?rq=1 – datatoo

回答

1

您可以使用字符串操作:

string columnLetter = address.Split('$', StringSplitOptions.RemoveEmptyEntries)[0]; 

我宁愿用列的索引号,而不是的信件;你可以从Column属性中得到这个。如果你真的需要字母标识符,你可以计算它。我确信我记得一个内置函数用于将列的索引号(即3)转换为它的字母标识符(即“C”),但目前我找不到它。

+0

这正是我一直在尝试得到,做了它的一些功能。字符串操作很简单,我只是想做不同的事情。 –

+0

@ruimartins我想我找到了我正在寻找的东西:'ConvertFormula'函数。但是我不能让它为第四列返回字母'D'';它总是返回'“$ D:$ D”' – phoog

+0

Tks。我想我会坚持字符串操作。 –

1

你可以使用像这样一个正则表达式或子字符串方法:

string rowId = address.Substring(address.LastIndexOf('$') + 1); 
string columnId = address.Substring(1, address.LastIndexOf('$') - 1);