3

Excelプロジェクト(以下に投稿)のテキストを置き換えるコードがいくつかありますが、このコードは魅力的です。しかし、テキスト インスタンスの数も置き換えたいと思います。それを取得する方法はありますか?

static void ReplaceTextInExcelFile(string filename, string replace, string replacement)
{
object m = Type.Missing;

// open excel.
Application app = new ApplicationClass();

// open the workbook. 
Workbook wb = app.Workbooks.Open(
    filename,
    m, false, m, m, m, m, m, m, m, m, m, m, m, m);

// get the active worksheet. (Replace this if you need to.) 
Worksheet ws = (Worksheet)wb.ActiveSheet;

// get the used range. 
Range r = (Range)ws.UsedRange;

// call the replace method to replace instances. 
bool success = (bool)r.Replace(
    replace,
    replacement,
    XlLookAt.xlWhole,
    XlSearchOrder.xlByRows,
    true, m, m, m);

// save and close. 
wb.Save();
app.Quit();
app = null;
}
4

1 に答える 1

2

直接行うことはできませんが、実行FindしてFindNext機能させ、検索で見つかったものを置き換えることができます。これにより、置換の数を取得するためのスコープが開きます。

Range r = (Range)ws.UsedRange;
int count=0;

Range first=r.Find(replace,m,m,XlLookAt.xlWhole,XlSearchOrder.xlByRows,m,m,m,m);
if(first!=null)
{count++;
Range start=first;
do
{
  start.Value=replacement;
  count++;
  start=r.FindNext(m);
}
while(start!=first);

//do whatever with count
于 2012-08-22T18:30:05.470 に答える