使用Excel Interop API自動執行excel時,我可以使用方法Range.Find輕鬆執行範圍搜索。我正在通過查找的LookIn,LookAt,SearchOrder,SearchDirection和MatchCase選項。如MSDN文檔所述,將傳入此方法的值保留到用戶設置中,所以下次用戶打開查找表單時,將會選擇在Range.Find方法中使用的選項。Excel Range.Find和維護用戶選擇的查找選項
我需要在編程查找前後保留查找選項的值。因此,我想捕獲當前的查找選項,然後執行Range.Find,然後將查找選項設置回搜索前設置的選項。但是,我沒有看到查找選項是可公開訪問的。任何想法如何獲得這些?
我基本上希望檢索LookIn,LookAt,SearchOrder,SearchDirection和MatchCase的當前查找選項值。
更新 我能找到到目前爲止,最有趣的事情是,你可以訪問Excel應用程序對話框 - Dialogs Interface。因此,在這裏,我可以訪問FormulaFind對話框,該對話框與「查找和替換」對話框略有不同,但可能會導致我正在查找的一些屬性。我沒有任何運氣,但也許有一種方法可以通過此表單使用反射來訪問屬性。我會繼續嘗試這個。
// xlDialogFormulaFind, xlDialogFormulaReplace
Excel.Dialog dialog = this.Application.Dialogs.Item[Excel.XlBuiltInDialog.xlDialogFormulaFind];
我在這裏發現了一個類似的線程,它不能解決這個問題:http://www.mrexcel.com/forum/showthread.php?t=520336,雖然提出了編寫自己的find方法的想法我寧願不這樣做)。 – mservidio 2012-04-24 18:34:13
我並不確定,但我認爲它不像您提到的那樣是公開的。也許你可以創建一個名爲FindOptions的類並根據用戶的輸入設置變量。然後,每次他們進行新搜索時,您都可以創建一個FindOptions實例,設置選項並將其放入一堆「查找」中,以便恢復到之前的任何搜索條件。是不是這樣的問題? – 2012-04-24 20:11:42
我看到你在說什麼,但問題在於找到當前值。我可以創建一個FindOptions類來保存這些值,但是,我需要從某處設置這些值。我需要找到我可以訪問當前查找選項值的位置。你將如何設置FindOptions類中的屬性就是我在...? – mservidio 2012-04-24 20:21:39