2012-01-31 2 views
1

범위의 선택한 항목의 문자열 배열을 가져 오는 데 사용할 수있는 메서드/속성이 있습니까? 예에서Microsoft.Office.Interop.Excel.Range에 대한 모든 셀 좌표 가져 오기

:
$B$2:$C$3는 다음과 같은 값을 문자열 배열 줄 것 범위 : EDIT ::
나는 사실 this post.
에 내 질문에 대한 답을 찾을

$B$2 $B$3 $C$2 $C$3, 내가 필요를 다음 절차를 사용하십시오.

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, n 당신이 기대하는 형식으로 주어진 범위의 셀 주소를 준다.

여기 위, GetCellAddresses(sheet1.Range("A1:B3"))

EDIT 호출하려면

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 

찾고있는 것을 얻을 수있는 VBA 코드 : LINQ를 사용하여,이 1 또는 2 라이너 될 수 있습니다.
예 : 는 하늘의 배열 메이크업을 구축 : var cellAddresses = srcRange.Select(c => c.Address);

또는

from cell in srcRange select cell.Address

-2

당신이 가야 절차 단지 당신을 위해 모든 것을 할 수있는 방법, 그리고 여기 에 배열을주고 있습니다 아니다 첫 번째 셀의 열에서 시작하여 각 열의 for 루프는 범위에서 마지막 열을 얻을 때까지 각 열에서 중첩 된 루프를 사용하여 열의 마지막 항목을 반복합니다. 각 항목을 배열에 추가하십시오.

이것이 효과가있는 아이디어입니다.