2014-01-20 49 views
0

我想捕獲在工作簿中創建現有表單的副本時觸發的事件。我的意圖是檢查工作簿中存在多少份工作表,因此限制副本數量。VSTO中的表單複製事件

+0

VSTO - VB.Net or C#? –

+0

它是VSTO-C#。 –

+0

然後在下面看到我的回答 –

回答

0

沒有工作表添加事件。您需要使用Application.SheetActivateWorkbook.SheetActivateWorksheet.Activate事件。這裏是一個C#示例

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    this.Application.SheetActivate += 
    new Excel.AppEvents_SheetActivateEventHandler(
    Application_SheetActivate); 
} 

void Application_SheetActivate(object Sh) 
{ 
    // Your code here to check if the copy is a duplicate or not 
} 
+0

這個事件處理程序是我所知道的。問題是:爲了找到創建的新工作表,必須具備的邏輯是現有工作表的副本。其中一種方法是迭代工作表集合並匹配當前工作表的名稱。這裏新創建的工作表的名稱起着重要的作用。例如,如果已經創建副本的紙張具有名稱「Sheet1」並且創建了一個是「Sheet1(1)」並且存在名稱爲Sheet1(2)的另一個紙張。現在的問題是如何確定哪個是創建的工作表的源副本。 –

+0

一個假設可能是工作簿中的所有工作表必須具有唯一且有意義的名稱。通過這種方式,可以藉助工作表名稱屬性和字符串操作來實現解決方案。不是嗎? –

+0

不,您不會使用工作表名稱,而是比較工作表的內容。如果你搜索谷歌,你會發現很多代碼來做一個表格比較。 –