2012-09-12 43 views
2

我複製並在Excel工作表中插入行,像這樣: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

在VBA這是Application.CutCopyMode = False

+0

它看起來像是枚舉,而不是布爾。看到這裏:http://msdn.microsoft.com/en-us/library/office/bb241059(v=office.12).aspx –

+1

你說得對,它是一個枚舉。這是一個奇怪的,它有枚舉,但至少在VBA中,你也可以將它設置爲FALSE。我做了很多次。有趣的是,你已經決定文檔是錯誤的。 –

+0

也許'混亂'是一個更好的詞。如果我嘗試將其設置爲false,則會出現編譯器錯誤。對於那些不瞭解更好的人來說,它在文檔中看起來像是一個錯誤。 –

2

添加

myExcelApplication.CutCopyMode = XlCutCopyMode.xlCopy; 

似乎做的伎倆,雖然documentation不能很好地解釋它,似乎是錯誤的,因爲bools被提及。

0

我知道這是很老,但我有一些問題,複製一行到另一個,當我得到了我的情況下,妥善的解決辦法,我現在很高興分享它,萬一它可以解決您的問題(考慮複製行而不是插入一行)。

這裏是解決方案:

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

使用該解決方案從得到的任何選擇在您的MS-Excel文件阻止。