0

さて、指定されたテキスト文字列を含む行を見つける必要がある非常に大きな Excel シートがあります。このシートのサイズは 10,000 行程度です。現在、次のようなことを行っています。

    sheet = workbook.ActiveSheet;

  // FIND the tape id in column: __________
        int cellRow = 0;
        int x = 0;
        for (x = 1; x <= 1000000; x++)
        {
            if (sheet.Cells[43][x].text.Contains(tapeID))
            {
                cellRow = x;
                break;
            }
        }

問題は、これがかなりの時間続くことです....したがって、私のニーズには遅すぎます。sheet.find() メソッドを実行しようとしましたが、間違ったセル全体が返されました..誰かが sheet.find の実装を手伝ってくれたり、これを行うためのより速い方法について教えてくれませんか?

次のようにfindを実装しました:

        sheet = workbook.ActiveSheet;
           Microsoft.Office.Interop.Excel.Range currentFind = currentFind = sheet.Cells.Find(tapeID, Type.Missing,
    Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues, Microsoft.Office.Interop.Excel.XlLookAt.xlPart, 
    Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, false,
    Type.Missing, Type.Missing); 

しかし、文字列値 = currentFind[0][0].Text で中身を見ると

私は間違ったセルを取得します.....Excelはここでゼロアドレスを使用しますか?...調査します

4

1 に答える 1

0

これと同じくらい気のめいるように、私は検索機能に間違ったインデックスを使用していました. 私はこれが少し恥ずかしいので、それが起こったことを忘れてしまいます。

乾杯

于 2012-11-02T20:40:07.057 に答える