Hi - another issue related to the conditional formatting. It seems to not update position when cells are deleted above it.
(example is slightly more convoluted than it needs to be to demonstrate, but is close to what I'm actually trying to do)
Workbook workbook = new Workbook("input3.xlsx");
Range blockRange = workbook.Worksheets.GetRangeByName("range");
//Add new blank range at bottom of current range
CellArea ca = new CellArea();
ca.StartRow = blockRange.FirstRow + blockRange.RowCount;
ca.EndRow = ca.StartRow + 3;
ca.StartColumn = blockRange.FirstColumn;
ca.EndColumn = blockRange.FirstColumn + blockRange.ColumnCount;
blockRange.Worksheet.Cells.InsertRange(ca, ShiftType.Down);
var secondRange = workbook.Worksheets.GetRangeByName("secondrow");
secondRange.MoveTo(ca.StartRow,ca.StartColumn);
var firstRange = workbook.Worksheets.GetRangeByName("firstrow");
firstRange.MoveTo(ca.StartRow+1, ca.StartColumn);
var thirdRange = workbook.Worksheets.GetRangeByName("thirdrow");
thirdRange.MoveTo(ca.StartRow+2, ca.StartColumn);
blockRange.Worksheet.Cells.DeleteRange(blockRange.FirstRow, blockRange.FirstColumn, blockRange.FirstRow+blockRange.RowCount-1,
blockRange.FirstColumn+blockRange.ColumnCount, ShiftType.Up);
workbook.Save("output.xlsx");