2014-02-17 98 views
0

以及我有一個小程序,改變所有以='C:\開頭的excel單元格,但是我遇到了問題。我使用range.replace來做這件事,但是我的程序工作不正常,因爲它不會改變所有包含='C:\的單元格,只是改變第一個找到它,我不知道是什麼原因。更改單元格與range.replace

我的代碼是:

foreach (Excel.Worksheet sheet in xlWorkBook.Sheets) 
{ 
    string sheetName = sheet.Name; 
    Console.WriteLine(sheetName); 


    //seleccion rango activo 
    range = sheet.UsedRange; 

    //leer las celdas 
    int rows = range.Rows.Count; 
    int cols = range.Columns.Count; 
    //Excel.Range startCell = sheet.Cells[1, 1]; 
    //Excel.Range endCell = sheet.Cells[rows, cols]; 
    sheet.Range["A1:J1000"].Replace(@"='C:\", @"='T:\"); 

    //range = sheet.UsedRange; 
    // leer las celdas 
    //int rows = range.Rows.Count; 
    //int cols = range.Columns.Count; 

    //} 
    // liberar 
    releaseObject(sheet); 
    } 

回答

1

你需要做的另一foreach -loop在選定範圍內的每一個細胞。

我沒有現在正在測試這一權利的方式,但這應該工作:

object whatToReplace = "what you want to replace"; 
object replacement = "what you want to replace it with"; 

foreach(Range cell in range) 
{ 
    cell.Replace(whatToReplace, replacement); 
} 
+0

不,那不是你能做到這一點的問題和它的作品,由「B」代替所有的「A」在A1:A10範圍內。範圍(「A1:A10」)替換:=「A」,替換:=「B」 – CRondao

+0

解決方案是什麼? –