2017-04-12 9 views
-2

ワークシートからすべてのExcel式を取得する必要があります。Range.SpecialCellsを使用して、各セルを繰り返して式を取得していますが、実際には遅いです。式だけをリストとして取得するには、文字列の?Excel式を読む

サンプルコード:

Excel.Worksheet worksheet = Workbook.Worksheets["Sheet1"]; 
Range range = worksheet.UsedRange.SpecialCells(xlCellTypeFormulas); 
foreach(Cell cell in range.Cells) 
{ 
    string formula = cell.formula.ToString(); 
    //some code 
} 
+0

を検索SO、ミニマル[ で特定の問題を提供してくださいコードの書き込みサービスではありません完全で検証可能な例](http://stackoverflow.com/help/mcve) –

+0

@MattRowlandがコードで更新されました。 –

+0

なぜそれが遅くなければならないのかわかりません。あなたが提供したスニペットに問題があることは確かですか? –

答えて

0

あなたはrange.formulaプロパティを使用しようとすることができます。例えば

:セルB3のセルA3に

、セル式が '= DATE(D3、C3,1)' である

、セル式は '= A3'

あります

Range r = activeWorksheet.get_Range("A3","B3"); 
var c = r.Formula; 

変数cは、ソートのセルSのリストのように含まれています:コード付き

その範囲とそれらのそれぞれの公式で特定された。

Cの出力:

[1,1] = "= DATE(D3、C3,1)"

[1,2] = "= A3"

0

これは全く異なる方法ですが、それは役に立ちますが、

これを押すだけで、すべての数式がExcelシートに表示されます。その後、検索や修正を行うために、必要なものを検索したり、txtファイルに貼り付けをコピーしたりすることができます。

あなただけの式中のいくつかの文字列を検索する場合は、あなたがCTRL + Fを使用することができ、式中の選択外観と文字列