Почему FreezePane работает только на первом листе?

У меня есть этот код, который отлично работает, добавив FreezePane в строку 7, col 3 первого листа (считая слева):

private void FreezePane(int rowNum, int colNum) { Range cellToFreeze = (Range)_xlSheet.Cells[rowNum, colNum]; cellToFreeze.Activate(); cellToFreeze.Application.ActiveWindow.FreezePanes = true; } 

После добавления еще нескольких листов (второй лист содержит данные в качестве источника для сводной таблицы, а третий лист содержит сводную таблицу), я хочу добавить freezepane в том же месте таблицы третьего / сводного стола, и так Я попробовал это:

 private void FreezePanePivotTable(int rowToFreeze, int colToFreeze) { Range pivotTableCellToFreeze = (Range)_xlPivotTableSheet.Cells[rowToFreeze, colToFreeze]; pivotTableCellToFreeze.Activate(); pivotTableCellToFreeze.Application.ActiveWindow.FreezePanes = true; } 

Это, однако, разбилось с « Активировать метод класса Range failed failed Исключение Источник: Microsoft Office Excel Exception StackTrace: at System.RuntimeType.ForwardCallToInvokeMember (… "

Поэтому я подумал: «Возможно, у вас может быть только одна замороженная панель в книге» и попробовал вызывать только новый метод (оставив первый лист незамерзшим), и я получаю это, казалось бы, странное сообщение об ошибке: « Невозможно установить свойство« Размер » Класс шрифта "

Если это исключение происходит во втором листе – исходные данные для листа 3 / сводной таблицы! Почему установка размера шрифта внезапно вызывает проблему? Строка 3418 – последняя строка ниже:

 var itemCodeLabelCell = _xlPivotDataSheet.Cells[1, 1]; itemCodeLabelCell.Value2 = "ItemCode"; itemCodeLabelCell.Style.WrapText = false; itemCodeLabelCell.Style.Font.Size = 12; 

Применяются ли другие правила для добавления freezepanes на основной (первый) лист и другие, или это то, что FreezePanes и сводные таблицы не могут сосуществовать или что?

SomeSheet.SomeRange.Activate() терпит неудачу, если SomeSheet еще не активен, поэтому, вероятно, «Активировать метод класса Range не удалось».

Вы должны активировать лист до:

 _xlPivotTableSheet.Activate(); pivotTableCellToFreeze.Activate(); 
  • Чтение документа XLS из System.IO.Stream
  • Как я могу добавить значение (а не только процент) к круговой диаграмме Excel?
  • Excel Interop - Защитный лист, исключая столбец
  • Поиск книги для ключевых фраз и колонки копирования в новую книгу
  • C # Interop.Excel '# N / A' Значение ячейки, преобразованное в -2146826246
  • Excel, как поместить текст в ячейку, основанный на ячейке witdh
  • Копировать стиль / формат одной ячейки в другую ячейку Excel Interop C #
  • получить фигуры выпадающего списка типов
  • Как перенести форматы ячеек Excel в C # Interop?
  • C # Excel Addon - предупреждение о компиляции - экспортер библиотеки типов не смог найти библиотеку типов для Microsoft.Office.Interop.Excel.Range
  • Почему типизированный массив .NET не является общим типом? (т. е. SomeType ! = Array {SomeType})
  • Interesting Posts

    Перемешать значения в новую строку по две ячейки за раз

    Как добавить группы на основе условий в Excel?

    Как искать лист Excel на определенную дату с помощью Apache POI?

    Добавить папку в HP ALM QC 11.0 Вкладка «Вложения» с помощью Excel VBA

    Двумерный массив, используемый в качестве перевода для копирования и вставки строк

    Вставка артигемического среднего значения VBA

    C # Добавить общую строку до последней строки таблицы Excel

    Как форматировать метки данных Microsoft Excel, не ограничивая десятичные значения округлыми значениями?

    Копирование текста в буфер обмена с помощью VBA

    Код C # для добавления гиперссылки в листе excel

    Python Win32Com и Excel.Application не удалось сохранить в планировщике

    Как указать имя файла сгенерированного файла для функции e: worksheet

    SSAS. Как открыть FILE: // через действия в Excel

    Как получить свойства последней созданной книги вместо ThisWorkbook?

    Замена значений в столбце по карте

    Давайте будем гением компьютера.