【问题标题】:How to find a range of cells? Excel C# [closed]如何找到一系列单元格? Excel C# [关闭]
【发布时间】:2017-02-10 05:06:05
【问题描述】:

我必须通过我的 C# 程序找到所有具有所需值的单元格。这些单元格是无序和分散的,就像您在文本下方的示例中看到的那样(我使用工具栏上的搜索工具选择了它们)。

我只需要在变量中选择具有所需值的单元格(以更改它们的颜色)。

【问题讨论】:

  • 你试过什么?我认为您需要获得一系列“使用过的”单元格。不然什么时候停? “使用”单元格的范围将为您提供一个范围,以便通过单元格检查您的值并在必要时更改颜色来循环遍历单元格。要获取工作表中的所有“使用”单元格: Excel.Range usedRange = xlWorksheet.UsedRange... usedRange 将是您需要搜索的单元格。 Foreach(usedRange.Rows 中的 Excel.Range 行)等……无论如何,最好展示您尝试过的内容。
  • @JohnG 晚上我会给你一些我的代码。谢谢回复。
  • 或者...因为您可以访问 excel 文件...您也可以使用它的搜索功能...

标签: c# vba excel excel-interop


【解决方案1】:
Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet;
Range rng = sheet.UsedRange;
foreach (Range column in from Range row in rng.Rows from Range column in row.Columns where column.Value == "T" select column)
{
   column.Interior.Color = Color.Red;
}

这段代码将选择活动工作表,选择整个使用范围,遍历其行和列,并为所有包含值“T”的单元格着色。

如果你不能理解第一个解决方案,你可以使用这样更容易理解的东西:

foreach (Range row in rng.Rows)
{
    foreach (Range column in row.Columns)
    {
        if (column.Value == "test")
        {
            column.Interior.Color = Color.Red;
        }
    }
}

【讨论】:

  • 谢谢。这很好,但不完全是我要求的?
  • 您要选择哪些单元格?
  • 我想找到所有包含“Т”值的单元格
  • 更新了我的答案,应该可以解决您的问题。
猜你喜欢
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多