2011-12-25 54 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; 
相關問題