0
bool rep = xlWorkSheet.Cells.Replace(textBox1.Text, 
                                     textBox2.Text, 
                                     Excel.XlLookAt.xlWhole, 
                                     Excel.XlSearchOrder.xlByRows, 
                                     false, 
                                     Type.Missing, 
                                     Type.Missing, 
                                     Type.Missing);
4

2 回答 2

1

你不能这样做。如果参数正确,Range 的 Replace 方法总是返回 true。我知道你唯一能做的就是首先查找你的文本的出现,然后替换它。绝对没有优化,但我想不出别的东西。

bool rep = xlWorkSheet.Cells.Find(textBox1.Text, 
                                  Type.Missing,
                                  Type.Missing, 
                                  Excel.XlLookAt.xlWhole, 
                                  Excel.XlSearchOrder.xlByRows,
                                  Type.Missing, 
                                  false, 
                                  Type.Missing, 
                                  Type.Missing) != null;
if (rep)
           xlWorkSheet.Cells.Replace(textBox1.Text, 
                                     textBox2.Text, 
                                     Excel.XlLookAt.xlWhole, 
                                     Excel.XlSearchOrder.xlByRows, 
                                     false, 
                                     Type.Missing, 
                                     Type.Missing, 
                                     Type.Missing);
于 2012-06-06T09:20:17.190 回答
1

下面的代码工作正常:

   Excel.Range Range = xlWorkSheet.UsedRange;

  currentFind =  Range .Find(textBox1.Text,                      Type.Missing,Excel.XlFindLookIn.xlValues,               Excel.XlLookAt.xlPart,                             Excel.XlSearchOrder.xlByRows,Excel.XlSearchDirection.xlNext,false,
    Type.Missing, Type.Missing);


   if (currentFind!=null)
   {

        SheetsArray.Add(xlWorkSheet.Name);
   }
于 2012-06-06T10:43:27.953 回答