Excel互操作 - 取消选择

4

我正在复制和插入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个回答

3

在VBA中,它是Application.CutCopyMode = False


1
看起来它是一个枚举类型,而不是布尔类型。参见这里:http://msdn.microsoft.com/zh-cn/library/office/bb241059(v=office.12).aspx - Charlie Salts
1
你说得对,它是一个枚举类型。在VBA中,它是一个奇怪的枚举类型,但你也可以将其设置为FALSE。我已经这样做过很多次了。有趣的是,你决定文档是错误的。 - Doug Glancy
也许“令人困惑”是更好的词。如果我尝试将其设置为false,我会得到一个编译器错误。对于那些不了解情况的人来说,这看起来像是文档中的错误。 - Charlie Salts

3

添加

myExcelApplication.CutCopyMode = XlCutCopyMode.xlCopy;

似乎可以解决问题,尽管文档解释得不是很清楚,并且似乎是错误的,因为它提到了布尔值。


0

我知道这可能有点老了,但是因为我曾经遇到过将一行复制到另一行的问题,并且在我的情况下找到了正确的解决方案,所以现在很高兴分享给大家,以防它能够解决你的问题(考虑复制行而不是插入行)。

以下是解决方案:

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

使用该解决方案可以防止在 MS-Excel 文件中选择任何内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接