目录
1.使用Select方法和FreezePans属性拆分和冻结窗格
2.使用SplitRow、SplitColumn和FreezePans属性拆分和冻结窗格
用户界面是任何程序设计都很重要的一环,直接影响到使用者的感受。对于我们VBA开发来说,我们将数据按照要求抓取出来之后,通常要以某种适宜的形式展现给用户。这时候就需要用到窗格的拆分、冻结。
窗格的拆分、冻结,需要用到ActiveWindow对象。ActiveWindow对象是Window对象的一个实例,指代的是excel应用中当前活动的窗口。我们使用这个实例的Split 属性和FreezePans属性,就可以实现拆分和冻结。
在使用FreezePans属性时,需要注意以下两点:
- 使用FreezePans=True时,如果Split=True,那么就按照Splitcolumn和Splitrow指定的值来冻结窗格。
- 使用FreezePans=True时,如果Split=False,则按照当前活动单元格的Row-1,Column-1来冻结窗格。
由此我们有两种不同的方法来实现拆分和冻结窗格。
1.使用Select方法和FreezePans属性拆分和冻结窗格
这个例程我们首先选定单元格(3,4),然后将ActiveWindow的Split属性设置为False,然后将FreezePanes属性设置为True。大家可以发现,窗格会以Row=2,Column=3拆分并冻结。
Public Function splitwindow1()
'选定单元格
Sheet5.Cells(3, 4).Select
'按选定单元格的Row-1,Column-1来冻结窗格
With ActiveWindow
.Split = False
.FreezePanes = True
End With
End Function
2.使用SplitRow、SplitColumn和FreezePans属性拆分和冻结窗格
这个例程,我们直接使用SplitRow和SplitColumn属性指定以Row=1和Column=3来拆分,然后使用FreezePans属性来冻结窗格。
Public Function splitwindow2()
'使用SplitRow和SplitColumn来拆分和冻结窗格
With ActiveWindow
.SplitRow = 1
.SplitColumn = 3
.FreezePanes = True
End With
End Function
3.窗格拆分和冻结的取消
拆分的取消有两种方法,一种是直接将Split属性设置为False,但是这种方法并不改变SplitRow和SplitColumn的值,所以并不安全,下次可能会出现误操作。另一种是将SplitRow和SplitColumn属性设置为0,这时候自动就将Split属性设置为False了。
冻结的取消很简单,直接将FreezePanes属性设置为False就可以了。