我正在尝试读取目前正在读取片材中所有细胞的细胞配方,这需要花费太多时间。我怎样才能选择那些有公式的单元格。
以下是我正在使用的代码
foreach (Excel.Worksheet workSht in xWorkBook.Worksheets)
{
for (int rCnt = 1; rCnt <= workSht .Rows.Count; rCnt++)
{
for (int cCnt = 1; cCnt <= workSht .Columns.Count; cCnt++)
{
string str = (string)(workSht.Cells[rCnt, cCnt] as Excel.Range).Formula;
if (str.Contains("_R*"))
{
if (File.Exists(excelFilePath))
{
File.Delete(excelFilePath);
}
CloseExcelObject(ref xWorkBook, ref xApp);
return "UnReviewedFile";
}
}
}
}
答案 0 :(得分:5)
在VBA中,您可以使用以下语句选择包含公式的所有单元格:
Sheet1.Cells.SpecialCells(xlCellTypeFormulas, 23).Select
其中Sheet1
是对当前工作表的引用,xlCellTypeFormulas = -4123
这意味着您应该能够使用类似以下代码的公式搜索单元格(未经测试):
foreach (Excel.Worksheet workSht in xWorkBook.Worksheets)
{
foreach (var cell in workSht.Cells.SpecialCells(-4123, 23)) {
// your code here
}
}
答案 1 :(得分:0)
保持@Gedde的答案,我试图获得特殊细胞并且它有效
这是魔鬼......
foreach (var cell in workSht.Cells.SpecialCells(XlCellType.xlCellTypeFormulas, 23))
{
str = (string)(cell as Excel.Range).Formula;
}