首页 > 解决方案 > 如何设置 Windows 类的 FreezePanes 属性?

问题描述

我严重依赖“Microsoft Project”。我的大多数同事都没有“Microsoft Project”,所以我使用 VBA 将项目进度表导出到 Excel。

有时,我会遇到此错误消息

“无法设置 Windows 类的 FreezePanes 属性”

部分VBA代码如下。

Dim xlSheet As Excel.Worksheet

xlwindow.Split = True
xlwindow.SplitColumn = AbsoluteColumnPos - 1
xlwindow.SplitRow = 3

xlwindow.FreezePanes = True  ' **

我不知道如何解决这个错误,但它总是在某个时候消失。
我可以通过在 Microsoft Word 中使用此 VBA 代码进行测试来检查这是否特定于从 Project 到 Excel 的迁移。

Sub Excel_Test()

Dim xlApp As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.Workbooks.Add
xlApp.Activesheet.Range("B3") = 5

With xlApp.ActiveWindow
    .Split = True
    .SplitRow = 4
    .SplitColumn = 11
    .FreezePanes = True
End With

End Sub

相同的错误信息

“无法设置 windows 类的 freezepanes 属性”

一直出现。

标签: excelvbams-project

解决方案


首先,你不应该需要这一行:

xlwindow.Split = True

其次,您可能会先尝试解冻,因为我不能 100% 确定您的代码是否完整,因此围绕您在此处发布的内容可能会发生什么,以及冻结是否可能已经开始运行。换句话说,尝试:

xlwindow.FreezePanes = False

xlwindow.SplitColumn = AbsoluteColumnPos - 1

xlwindow.SplitRow = 3

xlwindow.FreezePanes = True

推荐阅读