2011-12-25 38 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

在VBA中,你要的是'Selection',类型此对象将根据VAY对象在选择什么时,如果它是一个范围,那么它将是'Range'类型。我不确定'Interop'中的等效物是什么,但它应该类似 – 2011-12-25 07:34:38

+0

谢谢。以下内容适用于访问范围“Range range = Globals.ThisAddIn.Application.Selection;”。访问范围内单元格值的VBA等效物是什么? – hughesdan 2011-12-25 17:31:10

+0

进一步修补后,我可以通过访问Cells对象中的Value2属性来解决这个问题。 @Chris你想提交你的评论作为答案,以便我可以给你信用吗? – hughesdan 2011-12-25 18:12:24

回答

0

在VBA你想要的对象是Selection,类型此对象将根据选定的内容各不相同,如果它是一个范围内,那么这将是Range类型。我不确定Interop中的等价物是什么,但它应该是相似的。

(移至注释答案)

0

为Excel中的.NET加载项项目:

 Microsoft.Office.Interop.Excel.Range SelectedRange = Globals.ThisAddIn.Application.Selection; 
相关问题