2013-03-27 75 views
0

因此,我正在處理VSTO Excel應用程序,並且需要檢測用戶何時刪除ListObject。VSTO Excel:檢測最後一行ListObject已刪除

例如鑑於這樣的表格在Excel

enter image description here

和一些像這樣的代碼

this.listObject.Change += (s,e) => 
{ 
    Debug.Print("Changed!); 
}; 

當最後一排被刪除,不會觸發該事件ListObject.Change!

有沒有辦法檢測ListObject最後一行刪除,或ListObject本身從工作表中刪除?

回答

1

只是要說清楚:是刪除整個電子表格行還是隻刪除一行表格?從截圖看來,你已經選擇了整行。嘗試僅選擇表格的一行(不包括表格行以外的其他空單元格),然後右鍵單擊 - >刪除 - >刪除行。這會觸發你的事件嗎?

您還可以捕獲Worksheet上的Change事件,並檢查該行是否包含任何ListObject數據。

+1

您好,如果您只選擇表格行並選擇刪除,則不會引發ListObject.Change。我確實找到了一個解決方法,如果我訂閱Worksheet.SelectionChanged(僅持續觸發的事件)並檢查ListObject.DataBodyRange = null,那麼我知道表格的主體已被刪除。同樣,ListObject.HeaderBodyRange = null檢測整個表是否已被刪除。謝謝你的幫助! – 2013-03-27 20:24:28