2015-02-06 105 views
1

我試圖寫一個簡單的方法來查找activecell是否有根據NamedRange如果是這樣,它是什麼。但它不太好。這裏是我的代碼:Excel中查找單元名

private void btnH4_Click(object sender, EventArgs e) 
{ 
    if (Globals.ThisWorkbook.Application.ActiveCell.Name == null) 
    { 
     MessageBox.Show("Nothing"); 
     return; 
    } 
    MessageBox.Show(Globals.ThisWorkbook.Application.ActiveCell.Name.ToString()); 
} 
+0

ActiveCell Name是什麼意思?你的意思是NamedRange還是ActiveCell.Address? – 2015-02-06 05:43:58

+0

我想知道活動單元的命名範圍(選定單元格)。 – Moolynx 2015-02-06 05:45:07

+0

馬克,如果你得到的答案讓線將被關閉 – Gun 2015-02-06 06:51:13

回答

7

首先添加Microsoft.Office.Interop.Excel參考

添加以下行使用部分

using Excel = Microsoft.Office.Interop.Excel; 

下面是代碼獲取活動單元格的值

//Create excel application object 
Excel.Application excelApp = new Excel.Application(); 
//Create workbook object 
Excel.Workbook workBook = excelApp.Workbooks.Open(@"D:\Sample.xlsx");   
//Get the range of active cell 
Excel.Range range = (Excel.Range)excelApp.Application.ActiveCell; 
//Get the cell value 
object cellValue = range.Value; 
MessageBox.Show(cellValue.ToString()); 
//Get the address of an active cell 
MessageBox.Show(range.Address); 
//Get the active cell name 
foreach (Excel.Name item in workBook.Names) 
{ 
    //Compare the active cell address with named range address 
    if (item.RefersToRange.Cells.get_Address() == range.Address) 
     MessageBox.Show(item.Name); 
} 
//Close the workbook 
workBook.Close(); 
//Quit the excel application 
excelApp.Quit(); 
+0

嗨。謝謝您的回覆。我不是在單元格值之後,而是單元名稱。可以使用Excel名稱管理器(在公式下)爲單元格賦予唯一的名稱。我試圖找出Activecell是否已經分配了名稱,如果是,請報告名稱。 – Moolynx 2015-02-06 06:51:56

+0

@Moolynx,請檢查更新的代碼 – Gun 2015-02-06 07:10:10

相關問題