2012-01-31 57 views
1

是否有任何方法/属性可用于获取范围所选项目的字符串数组?获取Microsoft.Office.Interop.Excel.Range的所有单元格坐标

在例如:
范围$B$2:$C$3会给一个字符串数组具有以下值:$B$2 $B$3 $C$2 $C$3

编辑::
我找到了答案,我的问题上this post.
其实,我需要使用以下程序:

foreach (Range c in myRange) 
    { 
     string changedCell = c.get_Address(
      Type.Missing, Type.Missing, 
      XlReferenceStyle.xlA1, 
      Type.Missing, Type.Missing 
     ); 
     MessageBox.Show("Address:" + changedCell + " Value: " + c.Value2); 
    } 

回答

1

AFAIK,没有属性ca n给出格式中给定范围的单元格地址,您所期待的。

下面是VBA代码,让你在找什么

Function GetCellAddresses(ByVal srcRange As Range) As Variant 
Dim cellAddresses As Variant 

Dim cellCtr As Long 
Dim cellCount As Long 

Dim cell As Range 

If Not srcRange Is Nothing Then 
    cellCtr = 1 
    cellCount = srcRange.Cells.Count 
    ReDim cellAddresses(1 To cellCount) 

    For Each cell In srcRange.Cells 
     cellAddresses(cellCtr) = cell.Address 
     cellCtr = cellCtr + 1 
    Next 
End If 

GetCellAddresses = cellAddresses 
End Function 

要调用上面,GetCellAddresses(sheet1.Range("A1:B3"))

编辑:使用LINQ,这可以成为1或2衬垫。
例如, var cellAddresses = srcRange.Select(c => c.Address);

OR

from cell in srcRange select cell.Address

-2

没有只是为你做的一切方法,并给出一个数组你 这里是你应该去的过程: 建一个空数组 化妆每个列的for循环从第一个单元格的列开始,直到您获得范围中的最后一个为止 使用嵌套循环,也循环遍历列的最后一项 将每个项目添加到您的数组中

这是工作

的想法