適用於:Excel 2013 |Office 2013 |Visualstudio
雖然 Windows 使用先佔式多任務處理,其中您的函式或命令可能需要很長的時間才能執行,但最好立即再一次地對操作系統產生一些時間,以協助其排程並行工作。 使用原生 Windows 呼叫,您可以使用睡眠函式來執行此動作。 使用 C API,您可以使用 xlAbort 函式來執行此動作,此函式不僅會立即產生處理器,還會檢查使用者是否已按下取消密鑰 ESC。
因此 ,xlAbort 函式可讓您的程式代碼檢查使用者是否要結束程式、執行必要的清除,然後將控制權傳回 Excel。 函式也可讓您清除中斷條件。 這可讓您的命令顯示對話方塊,以確認使用者是否要結束命令。 如果使用者不想要結束命令,則使用 FALSE 自變數呼叫 xlAbort 函式 會清除中斷 。 (預設自變數為 TRUE ,它只會檢查條件,但不會清除它。)
您可以從使用者定義函式 (UDF) 或 XLL 命令呼叫 xlAbort 函式。 在UDF中,當 xlAbort 函式傳回 TRUE 時,在偵測到使用者中斷之後,您通常會縮短函數計算並傳回一些值,以指出計算尚未完成,可能是錯誤或零。 您不會清除中斷條件,讓其他也會檢查此條件的冗長函式實例也會中斷。 當重新計算結束時,Excel 會隱含地清除此條件。
當您在命令中偵測到中斷條件時,通常會使用 FALSE 自變數再次呼叫 xlAbort 函式來清除 條件,不過 Excel 會在命令結束時隱含地清除此條件。
另請參閱
只能從 DLL 或 XLL 呼叫的 C API 函式
Excel 中的多線程重新計算
開發 Excel XLL
存取 Excel 實例和主視窗句柄