Excel Interop - 如何使用格式搜索单元格?

时间:2017-09-29 07:40:20

标签: c# excel excel-interop

我看到Excel互操作有Find method但我不知道如何使用它。

我想在范围内搜索具有特定颜色的单元格(Microsoft.Office.Interop.Excel.Range)。 在Excel中,您将这样做:

  1. Ctrl + F打开“查找和替换”对话框。保留文本框'查找内容:'清空。
  2. 点击按钮[选项>>]或Alt + T
  3. 点击按钮[格式化...]或Alt + M
  4. 转到标签字体 - >单击颜色选项(Alt + C)并选择颜色。
  5. 单击“确定”,然后单击[查找下一个]
  6. 我只想以编程方式使用Excel Interop。

    感谢阅读:)

1 个答案:

答案 0 :(得分:1)

在调用Application.FindFormat方法之前,您需要设置Find()属性。

E.g。如果你想使用"查找和替换"的标准设置来搜索红色单元格。对话框,您可以使用以下代码:

// These are the search options of the "Format" dialog.
_application.FindFormat.Font.Color = 255;
_application.FindFormat.Font.TintAndShade = 0;

// cell is null if nothing was found.
var cell = _application.Cells.Find(What: "", After: _application.ActiveCell,
    LookIn: XlFindLookIn.xlFormulas, LookAt: XlLookAt.xlPart,
    SearchOrder: XlSearchOrder.xlByRows, SearchDirection: XlSearchDirection.xlNext,
    // It's important to set SearchFormat to true.
    MatchCase: false, SearchFormat: true);

如果你想搜索当前主题的强调色2,你也可以这样做:

_application.FindFormat.Font.ThemeColor = XlThemeColor.xlThemeColorAccent2;

如果您想模仿"查找和替换"的确切行为。对话框,您可以在找到单元格后调用cell.Activate()