gpt4 book ai didi

c# - "Unable to set the FreezePanes property of the Window class"Excel 2016 (办公室 365)

转载 作者:太空狗 更新时间:2023-10-29 20:12:44 31 4
gpt4 key购买 nike

我构建了一个 excel 插件,它使用数据库中的数据填充工作表。我还添加了一些样式并使用 FreezePanes 锁定了一些行和列。

worksheet.Activate();
worksheet.Application.ActiveWindow.FreezePanes = false;
worksheet.Application.ActiveWindow.SplitRow = 4;
worksheet.Application.ActiveWindow.SplitColumn = 11;
worksheet.Application.ActiveWindow.FreezePanes = true;

这一切在 excel 2010/2013 中都很有效,但我最近切换到 excel 2016 (office 365),从那时起,当我的 excel 工作表不在前台时,我遇到了 FreezePanes 问题。我搜索了互联网,我唯一遇到的事情是我只能在事件工作表上预制 FreezePanes,我知道 - 我已经在设置 ​​FreezePanes 之前激活了工作表。这在 excel 2010 中有效,尽管实际上我的 excel 并未发送到前台。

Office 365 中的 Excel 可能确实希望我的 Excel 工作表物理上位于前台,但 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);

但这也行不通。任何人都可以帮助我解决这个问题吗?

需要说明的是:我的excel版本是2016 Version 1611 (Build 7571.2109)

最佳答案

worksheet.Application.ActiveWindow 是否可能不是包含事件工作表的窗口?在以前的 Excel 版本中,所有工作簿都有相同的窗口,但由于 Microsoft 放弃了 Excel 的 MDI,您可能突然有两个不同的窗口使用与以前相同的代码。混合使用这些窗口可能会导致您遇到问题。

有关自 Excel 2013 以来的一些更改,请参阅此链接: https://msdn.microsoft.com/en-us/library/office/dn251093.aspx

您可以尝试的另一件事是在调用 FreezePane 之前将窗口状态设置为正常:

Worksheet.Application.ActiveWindow.WindowState = Microsoft.Office.Interop.Excel.XlWindowState.xlNormal;

还有一种可能性是,这实际上是 Excel 中的错误。我确实找到了其他人遇到同样的问题,但不清楚这个人是解决了问题还是填写了错误报告:

https://social.msdn.microsoft.com/Forums/office/en-US/7e6ff1ed-b4c6-4c75-82be-14175f44df55/freezepanes-throws-an-exception-when-excel-is-minimized?forum=exceldev

您可以向 Microsoft 提交错误报告,然后等待他们是否可以确认这是一个错误。

关于c# - "Unable to set the FreezePanes property of the Window class"Excel 2016 (办公室 365),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41674619/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com