我想在excel工作表中找到该行,其中A列和B列满足我的条件。 C列包含我要获取的值。 示例:我有以下表格(对不起,表格的html标记似乎无法正常工作):
ColumnA ColumnB ColumnC
A X 1
A Y 2
我想获取A列为“ A”而B列为“ Y”的行,并从C列获取关联的值,在这种情况下为“ 2”。
我已经能够找到第一行中“ A”的第一个条目。我正在使用excel.rangeFind。但是,我想知道A列为“ A”而B列为“ Y”的行。
``
Excel.Range excelRangeA= workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");
string value= (excelApp.Cells[rngFind .Row, 3] as Excel.Range).Value;
``
我的代码为我提供了C列中的值1。但是我想拥有该值,其中A列为“ A”,B列为“ Y”,所以我想从C列获取值“ 2” ..
有人有想法吗?我认为它可以与excel.range.findNext一起使用。这是我到目前为止尝试过的:
Excel.Range excelRangeA= workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");
if (excelApp.Cells[rngFind.Row, 1].Offset[0, 1].Value == "Y")
{
string value= (excelApp.Cells[rngFind.Row, 3] as Excel.Range).Value;
MessageBox.Show(value);
}
else
{
rngFindParam = excelRangeA.FindNext("A");
}
答案 0 :(得分:0)
尝试一下:
Excel.Range excelRangeA = workSheet.Columns["A:A"];
var rngFind = excelRangeA.Find("A");
var found = false;
while (rngFind!=null || !found)
{
if (rngFind.Offset[0, 1].Value == "Y")
{
string value = rngFind.Offset[0, 2].Value;
found = true;
MessageBox.Show(value);
}
else
{
rngFind = excelRangeA.FindNext(rngFind);
}
}