根据所选的下拉列表在Excel中触发单元格值更改

时间:2015-10-01 05:23:15

标签: c# excel

我正在开发一个项目,该项目需要从下拉列表中读取所选值,并为Excel中的其他单元格生成值。

以下是代码中的代码段:

var list = new System.Collections.Generic.List<string>();
list.Add("A");
list.Add("B");
list.Add("C");
var flatList = string.Join(",", list.ToArray());

var cell = ws.get_Range("D1", Type.Missing);
cell.Validation.Delete();
cell.Validation.Add(
XlDVType.xlValidateList,
XlDVAlertStyle.xlValidAlertInformation,
XlFormatConditionOperator.xlBetween,
flatList,
Type.Missing);

cell.Validation.IgnoreBlank = true;
cell.Validation.InCellDropdown = true;
cell.Value = "Overall";

我使用了上面的代码,并成功地创建了一个下拉列表。但我不确定如何读取所选的值。根据选择的值,应更新单元格D3值。我需要一个像这样的代码:

if(selected option is "A")
{
  Cell D3 value should be ="111";
}
else if (selected option is "B")
{
 cell D3 value should be ="222";
}
else
{
  cell D3 value should be ="333";
}

如何根据下拉列表中选择的值触发单元格值更改?

2 个答案:

答案 0 :(得分:0)

在excel中,下拉值驻留在单元格中,因此您只需获取已应用下拉列表的单元格值。

您只需要以下代码从单元格中读取值:

var cellValue = (string)(ws.Cells[4, 1] as Excel.Range).Value;

然后您可以使用条件IF ELSE来检查单元格值并执行必要的操作。

if(cellValue == "A")
{
   //Do something
}
else if(cellValue == "B")
{
   //Do something
}

依旧......

答案 1 :(得分:0)

到Paresh J:

好的安卓,但有一点错误。

var cellValue = (string)(ws.Cells[1, 4] as Excel.Range).Value;

我认为“Cells [1,4]”等于“get_Range(”D1“,Type.Missing)”。