2011-12-25 1 views
0

.NET 4 및 VS 2010을 사용하여 Excel 2010 응용 프로그램 추가 기능을 작성하려고합니다. 사용자가 선택한 셀 범위에 액세스하는 것이 어렵다는 것이 입증되었습니다. 사용자는 일련의 n 연속 셀을 선택한 다음 리본 막대의 버튼을 클릭합니다. 그런 다음이 버튼을 클릭 한 후에 범위의 셀 주소와 셀 값에 모두 액세스해야합니다. 아래는 제 코드입니다. get_Range는 필자가 원하는만큼 찾을 수있는 가장 가까운 메서드입니다. 그러나이 방법에는 첫 번째 및 마지막 셀 주소가 필요합니다. 이와 비슷한 방법으로 사용자가 선택한 입력 범위를 매개 변수로 사용합니까? 또한 선택한 범위에 액세스 한 후 해당 범위에 포함 된 값을 가져와 데이터베이스에 기록해야합니다. 데이터 테이블에 캐스팅 할 range.SelectedValues와 같은 것을 사용하고 있습니다. 선택한 값 집합에 액세스하는 올바른 방법은 무엇입니까?Excel에서 선택한 범위 주소 및 셀 값에 액세스 추가

미리 도움을 청하십시오. PIA 문서에서 빠져서 간단한 작업을 수행하기 위해 고심하고 있습니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using Microsoft.Office.Tools.Ribbon; 
using Microsoft.Office.Tools.Excel; 
using Microsoft.Office.Interop.Excel; 

namespace ExcelAddIn2 
{ 
    public partial class Ribbon1 
    { 

     private void Ribbon1_Load(object sender, RibbonUIEventArgs e) 
     { 

     } 

     private void GetRageValues() 
     { 

      Range range = Globals.ThisAddIn.Application.get_Range("A1", "A3"); 

      //to be replaced with database insert 
      System.Windows.Forms.MessageBox.Show("You Selected" + range.Address); 
     } 

     private void button1_Click_1(object sender, RibbonControlEventArgs e) 
     { 
      GetRageValues(); 

     } 

    } 
} 
+1

당신은'Selection'는,이 ​​오브젝트의 유형을 따라의 vay 것입니다 할 개체 어떤 것이 선택되었는지, 그것이 범위라면 그것은'Range' 유형입니다. 나는 Interop에서 무엇이 같은지 모르지만 비슷해야한다. –

+0

고마워. 다음은 "Range range = Globals.ThisAddIn.Application.Selection;"범위에 액세스하기 위해 작동합니다. 해당 범위의 셀 값에 액세스하는 VBA는 무엇입니까? – hughesdan

+0

Cells 개체의 Value2 속성에 액세스하여 추가로 문제를 해결할 수있었습니다. @ 크리스 당신이 답변을 귀하의 의견을 제출할 수 있도록 내가 당신에게 그것을 줄 수 있습니까? – hughesdan

답변

0

은 VBA에서 원하는 객체는 객체의 유형은, 선택한 항목에 따라 달라집니다 그 범위 인 경우 다음 유형 Range이 될 것입니다, Selection입니다. Interop에서 무엇이 상응하는지 모르겠지만 유사해야합니다.

엑셀을위한 .NET 추가 기능 프로젝트

0

(이전 코멘트 답변하기) : VBA에서

 Microsoft.Office.Interop.Excel.Range SelectedRange = Globals.ThisAddIn.Application.Selection;