Excel Interop - 取消选择

时间:2012-09-12 01:45:28

标签: c# excel interop excel-interop

我在Excel工作表中复制和插入行,如下所示:

   while (rowsToAdd > 0)
   {
      // copy the existing row
      insertionCell.EntireRow.Copy(Type.Missing);

      // location of the new row
      Range newRow = insertionCell.EntireRow.get_Offset(1, 0).EntireRow;

      // insert the new row
      newRow.Insert(XlInsertShiftDirection.xlShiftDown, Type.Missing);

      rowsToAdd--;
   }

我遇到的问题是,有时候,我在最初复制的行周围留下了一个选择框。

有没有办法可以取消选择框(你通常用Escape键做的方式?)

3 个答案:

答案 0 :(得分:3)

在VBA中,Application.CutCopyMode = False

答案 1 :(得分:2)

添加

myExcelApplication.CutCopyMode = XlCutCopyMode.xlCopy;

似乎可以解决这个问题,虽然documentation并没有很好地解释它,但似乎是错误的,因为提到了bools。

答案 2 :(得分:0)

我知道它已经很老了,但是因为我有一些问题将一行复制到另一行,并且因为我在我的案例中得到了正确的解决方案,我现在很高兴分享它,以防它可以解决你的问题(考虑复制行而不是插入一行。

以下是解决方案:

Microsoft.Office.Interop.Excel.Range xlSourceRow;
Microsoft.Office.Interop.Excel.Range xlNewRow;
xlSourceRow.Copy(xlNewRow);

使用此解决方案可防止在MS-Excel文件中进行任何选择。