2017-11-30 13 views
-1

Col AA에 Null 문자열의 범위가 있습니다 (복사 붙여 넣기 특수 값의 결과로) Excel에서), col AA에 특수 값을 복사/붙여 넣기하는 공식은 "=if(Z6<1,"",Z6)"입니다. Excel은 빈 문자열 셀을 빈 셀이 아니라 빈 셀로 처리합니다.C에서 프로그래밍 방식으로 모든 xlCellTypeBlank를 비울 수 없습니다 (예 : 셀이 공백이 아님)

빈 셀/null 문자열을 일부 공백으로 공백으로 변환하거나 공백 셀이 아닌 빈 셀을 삭제하도록 내 C# 코드를 변경해야합니다. 어떻게 든 빈 셀에 널 (null) 문자열을 가진 사람의 모든 셀을 변환 할 수있는 경우이 코드가 작동 것이다 :

var deleteRange = plWS.get_Range("AA6", "AA149"); deleteRange.SpecialCells(Excel.XlCellType.xlCellTypeBlanks).EntireRow.Delete();

내가 여러 시트에이 코드를 구현하고있어, 그래서 필요없이이 작업을 수행하기 위해 노력하고있어를 효율성/시간을 위해 모든 행을 반복하십시오.

Excel 수식 솔루션과 C# 프로그래밍 솔루션에 대해 열려 있습니다.

+0

혼합 된 용어로 인해 원하는 것을 정확하게 이해하는 것은 어렵습니다. Excel에는 null 문자열이없고 빈 셀은 빈 셀과 완전히 동일합니다. 길이가 0 인 문자열 인'' "'이 들어있는 셀은 공백도 아니고 공백도 아닙니다 (이는 동일한 것입니다). 실제로 빈 셀을 감지하는 함수는'ISBLANK()'입니다. – GSerg

+0

@GSerg 틀 렸습니다. 빈 공간과 공백 공간은 Excel에서 서로 다릅니다. Excel에서 col Z6에 다음 수식이 있다고 가정 해 보겠습니다. '= ""'. 이제 특수 값 셀 Z6을 붙여 넣기한다고 가정 해 봅시다. 이제 ISBLANK (Z6)의 셀 AA6에 다음 수식이 있다고 가정 해 봅시다. 셀 AA6의 값은 Z6이 공백이 아니기 때문에 False가됩니다 (즉, 공백이 아닙니다). 나는 그것을 시험하고 이것이 사실 인 경우 연구를 통해 확인했다. –

+0

일상적인 의미에서 "빈"이라는 단어를 사용하고있는 것처럼 보입니다 (예 : "화면에 아무것도 표시되지 않음"). 두 가지 이유로 실제로 작동하지 않습니다. 첫째, 셀에 많은 데이터가있을 수 있으며 적용된 서식 패턴 때문에 화면에 여전히 비어있는 것처럼 보일 수 있습니다. 둘째,'Empty'는' 변형/비어 있음. ISBLANK는 특별히 Empty 값을 가진 셀을 탐지합니다. 가능한 다른 [빈 값] (https://stackoverflow.com/questions/37057665/vb6-issue-with-null#comment61664803_37057665)도 있습니다. – GSerg

답변

0

Excel은 공백 (일명 null)과 공백을 구분합니다. 당신은 다음과 같은 빈 행을 삭제하려는 경우 :

deleteRange.SpecialCells(Excel.XlCellType.xlCellTypeBlanks).EntireRow.Delete(); 

이 빈 행 만 비어 있지 삭제하기 때문에 불가능하다/널 (null)이 문제를 해결하는 가장 쉬운 방법은 찾기를 사용하는 것입니다 rows.The 아래의 FIND AND REPLACE와 같이 C#에서 함수를 바꾸면 셀을 먼저 빈 칸으로 바꿀 수 있습니다. 즉, ""로 바꿀지라도 실제로는 공백이 반환됩니다.

var deleteRange = loopWS.get_Range("AA6", "AA150"); 
deleteRange.Cells.Replace(What: "0", Replacement: "");