Как программно удалить все xlCellTypeBlank в Excel, где ячейка пустая, а не пустая (то есть ячейка является пустой строкой) в C#

У меня есть ряд пустых строк в столбце AA (в результате специального значения копирования и вставки в Excel), формула, в которую я копирую / вставляю специальное значение в столбце AA, "=if(Z6<1,"",Z6)", Excel обрабатывает пустые ячейки как пустые, а не пустые.

Мне нужно либо преобразовать пустые ячейки / пустые строки в пробелы с помощью некоторого решения в формуле Excel, либо изменить мой код C# ниже, чтобы удалить пустые ячейки, а не пустые ячейки. Если бы я мог как-то преобразовать все эти ячейки с пустыми строками в пустые ячейки, этот код работал бы:

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

Я реализую этот код на нескольких листах, поэтому я пытаюсь сделать это без необходимости циклически перебирать все строки для эффективности / времени.

Я открыт для решений формул Excel, а также решений для программирования на C#.

1 ответ

Excel различает пустое (иначе ноль) и пустое. Если вы пытаетесь удалить пустые строки примерно так:

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

это невозможно, потому что при этом удаляются только пустые строки, а не пустые / пустые строки. Самый простой способ решить эту проблему - использовать функцию поиска и замены в C#, как показано ниже: НАЙТИ И ЗАМЕНИТЬ, чтобы сначала превратить ваши ячейки в ЧЕРНЫЕ. то есть, даже если вы заменяете на "", он фактически возвращает BLANK:

var deleteRange = loopWS.get_Range("AA6", "AA150");
deleteRange.Cells.Replace(What: "0", Replacement: "");
Другие вопросы по тегам