2013-07-17 5 views
0

저는 C#에서 코딩하고 Microsoft.Office.Interop.Excel을 사용하고 있습니다. 나는 열 A - F를 가지고 있고 일부 열은 B 열에 값이 없습니다. 그래서 열 B를 반복하고 텍스트/값이없는 모든 셀을 찾은 다음 전체 행을 삭제하려고합니다. B 열을 순환하여 null 셀을 찾지 만 그 행을 삭제하려고하면 아무 일도 일어나지 않습니다. 이 같은조건에 따라 행을 삭제하십시오.

Excel.Range B = objsheet.get_Range("B1:B" + lastUsedRow, System.Type.Missing); 
foreach (Excel.Range r in B) 
{ 
    string column = r.Text.ToString(); 

    if (string.IsNullOrEmpty(column)) 
    { 
     Excel.Range BEntireRow = objsheet.get_Range(r + "1:" + r + "B" + lastUsedColumn, System.Type.Missing); 
     // Excel.Range BEntireRow2 = r.EntireRow; 
     BEntireRow.Delete(Microsoft.Office.Interop.Excel.XlDirection.xlUp); 

    } 
} 
+0

될 것이다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

답변

2

오히려 다음을 수행 할 수있는 칼럼을 통해 반복 이상;

Range("B1:B" + lastUsedRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

C#에서 사용 것 : - 내가 XL 또는 myXl을 사용

.SpecialCells(Excel.XlCellType.xlCellTypeBlanks) 

가 BTW 난 당신이 Excel.Application 개체 Excel 이름 않을 것이다 이것은 VBA 코드입니다. 그렇지 않으면 혼란스럽고 어느 시점에서 오류가 발생할 수 있습니다.

추가은 전체의 C# 문은 내가 제목을 편집 한

Range("B1:B" + lastUsedRow).SpecialCells(Excel.XlCellType.xlCellTypeBlanks).EntireRow.Delete(); 
+0

이것은 무엇을합니까? .SpecialCells (Excel.XlCellType.xlCellTypeBlanks) - 셀을 삭제 하시겠습니까? – user2140832

+0

무엇이 잘못 되었나요 : Excel.Range BEntireRow = objsheet.get_Range ("B1 : B"+ lastUsedRow, System.Type.Missing); BEntireRow.SpecialCells (Excel.XlCellType.xlCellTypeBlanks) .EntireRow.Delete; – user2140832

+0

모든 솔루션 - 코드의 전체 구현에 대해 명확하지 않음 – user2140832

0

시도 뭔가 : 여기 내 코드입니다

Rows([INSERT_THE_ROW_YOU_WANT_TO_DELETE_HERE]).EntireRow.Delete; 
+0

'EntireRow' 전에 점을 추가하십시오 : D – chancea

+0

제발, 저를 죽음에 괴롭히는 것 같고 1 문자 만 편집 할 수 없습니다 – chancea

관련 문제