Я построил excel addin, который заполняет рабочий лист данными из базы данных. Я также добавляю некоторый стиль и блокирую некоторые строки и столбцы с помощью FreezePanes.«Невозможно установить свойство FreezePanes класса Window» Excel 2016 (офис 365)
worksheet.Activate();
worksheet.Application.ActiveWindow.FreezePanes = false;
worksheet.Application.ActiveWindow.SplitRow = 4;
worksheet.Application.ActiveWindow.SplitColumn = 11;
worksheet.Application.ActiveWindow.FreezePanes = true;
Это все работало как шарм в первенствуют 2010/2013 годы, но я недавно перешел, чтобы преуспеть в 2016 году (офис 365), и с тех пор у меня были проблемы с FreezePanes, когда мой первенствует лист не на переднем плане. Я обыскал в Интернете, и единственное, с чем я столкнулся, это то, что я могу только заготовку FreezePanes на активном листе, я знал, что - я уже активировал лист перед установкой FreezePanes. Это работало в excel 2010, хотя физически мой excel не был отправлен на передний план.
Excel из офиса 365, вероятно, на самом деле хочу, чтобы мой первенствует рабочий лист, чтобы быть физически на переднем плане, но worksheet.Activate()
не помогает, и я также попытался следующий код:
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll", SetLastError = true)]
static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);
string caption = oExcel.Caption;
IntPtr handler = FindWindow(null, caption);
SetForegroundWindow(handler);
Но это тоже не сработало. Может ли кто-нибудь помочь мне с этим?
Чтобы был ясен: версия моих Эксел 2016 Version 1611 (Build 7571,2109)
Может быть, это глупый вопрос, но как вы определяете и устанавливаете 'рабочий лист' в первом блоке? –
В начале моего процесса я записываю текущий рабочий лист следующим образом: 'Excel.Application.ActiveSheet'. Во время процесса может случиться так, что этот WorkSheet больше не является активным. По какой-то странной причине лист более или менее активен, когда я его активирую, но он не отправляется на передний план, а FreezePanes терпит неудачу ... – DeniseMeander