//ここで列1から始まるすべての行を削除しようとしています から35までですが、レコードを削除している間にレコードが残っており、 すべての行を削除しません。 問題が実際にどこにあるのかわかりません。タスクマネージャの問題ですが、すでにexeファイルを強制終了しています。 2行目から最後の行までのすべての行をループしているので、レコードが空でない場合は、get_rangeの助けを借りてレコードを1つずつ削除しています。Excelのレコードを1列目から35行目まで削除しようとしています
public static void GetIncidentExcel(string Incident_Path, List<excelObj> ListTickets)
{
lastRow = 0;
MyApp = new Excel.Application();
// MyApp.Visible = false;
MyBook = MyApp.Workbooks.Open(Incident_Path);
MySheet = (Excel.Worksheet)MyBook.Sheets["BOXI_summary"]; // Explict cast is not required here
lastRow = MySheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
for (int i = 2; i <= lastRow; i++)
{
Array MyValues = (Array)MySheet.get_Range("A" + i.ToString(), "AI" + i.ToString()).Cells.Value;
if (Convert.ToString(MyValues.GetValue(1, 1)) == "" && Convert.ToString(MyValues.GetValue(1, 2)) == "" && Convert.ToString(MyValues.GetValue(1, 3)) == "" &&
Convert.ToString(MyValues.GetValue(1, 4)) == "" && Convert.ToString(MyValues.GetValue(1, 5)) == "" && Convert.ToString(MyValues.GetValue(1, 6)) == "" &&
Convert.ToString(MyValues.GetValue(1, 7)) == "" && Convert.ToString(MyValues.GetValue(1, 8)) == "" && Convert.ToString(MyValues.GetValue(1, 9)) == "" &&
Convert.ToString(MyValues.GetValue(1, 10)) == "" && Convert.ToString(MyValues.GetValue(1, 11)) == "" && Convert.ToString(MyValues.GetValue(1, 12)) == "" &&
Convert.ToString(MyValues.GetValue(1, 13)) == "" && Convert.ToString(MyValues.GetValue(1, 14)) == "" && Convert.ToString(MyValues.GetValue(1, 15)) == "" &&
Convert.ToString(MyValues.GetValue(1, 16)) == "" && Convert.ToString(MyValues.GetValue(1, 17)) == "" && Convert.ToString(MyValues.GetValue(1, 18)) == "" &&
Convert.ToString(MyValues.GetValue(1, 19)) == "" && Convert.ToString(MyValues.GetValue(1, 20)) == "" && Convert.ToString(MyValues.GetValue(1, 21)) == "" &&
Convert.ToString(MyValues.GetValue(1, 22)) == "" && Convert.ToString(MyValues.GetValue(1, 23)) == "")
break;
else
{
Excel.Range cells = MySheet.get_Range("A" + i.ToString(), "AI" + i.ToString());
cells.Delete();
}
}
ループを逆方向に実行してみてください。 –
y u '>' tho? :O – Kritner
私は後ろにループしていますが、その作業はできません。いくつかのレコードは元に戻されません。 – Dilip