Excel Interop - 如何使用格式搜索单元格?
Excel Interop - How to search cell with format?
我看到 Excel interop 有 Find method 但我不知道如何使用它。
我想在范围 (Microsoft.Office.Interop.Excel.Range) 中搜索具有特定颜色的单元格。
在 Excel 中,您将这样做:
- Ctrl + F 打开 'Find and Replace' 对话框。将文本框 'Find what:' 留空。
- 单击按钮 [选项 >>] 或 Alt+T
- 单击按钮 [格式...] 或 Alt+M
- 转到选项卡字体 -> 单击颜色选项 (Alt+C) 并选择颜色。
- 点击确定,然后点击[查找下一个]
我只想使用 Excel Interop 以编程方式执行此操作。
感谢阅读:)
调用Find()
方法前需要设置Application.FindFormat
属性
例如如果要使用 "Find and Replace" 对话框的标准设置搜索红细胞,可以使用以下代码:
// 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;
如果您想模拟 "Find and Replace" 对话框的确切行为,您可以在找到单元格后调用 cell.Activate()
。
我看到 Excel interop 有 Find method 但我不知道如何使用它。
我想在范围 (Microsoft.Office.Interop.Excel.Range) 中搜索具有特定颜色的单元格。 在 Excel 中,您将这样做:
- Ctrl + F 打开 'Find and Replace' 对话框。将文本框 'Find what:' 留空。
- 单击按钮 [选项 >>] 或 Alt+T
- 单击按钮 [格式...] 或 Alt+M
- 转到选项卡字体 -> 单击颜色选项 (Alt+C) 并选择颜色。
- 点击确定,然后点击[查找下一个]
我只想使用 Excel Interop 以编程方式执行此操作。
感谢阅读:)
调用Find()
方法前需要设置Application.FindFormat
属性
例如如果要使用 "Find and Replace" 对话框的标准设置搜索红细胞,可以使用以下代码:
// 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;
如果您想模拟 "Find and Replace" 对话框的确切行为,您可以在找到单元格后调用 cell.Activate()
。