首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Excel2007VBA中以编程方式冻结Excel工作表的顶行?

如何在Excel2007VBA中以编程方式冻结Excel工作表的顶行?
EN

Stack Overflow用户
提问于 2010-07-13 06:56:16
回答 6查看 153.9K关注 0票数 44

我希望以编程方式冻结来自VBA的Excel工作表的顶行。最终目标是产生与Excel2007中的View > Freeze Panes > Freeze Top Row命令相同的效果,以便冻结工作表的顶行,使用户即使在滚动数据时也能看到工作表的顶行。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-07-13 06:57:56

代码语言:javascript
运行
复制
Rows("2:2").Select
ActiveWindow.FreezePanes = True

为不同的效果选择不同的范围,这与手动操作的方法非常相似。“冻结首行”实际上只是Excel 2007 (或更高版本)中的一个新快捷方式,与Excel的早期版本相比,它不包含任何附加功能。

票数 44
EN

Stack Overflow用户

发布于 2010-07-13 07:09:40

Tomalak已经给了你一个正确的答案,但我想补充的是,在大多数情况下,当你想知道在用户界面中执行特定操作所需的VBA代码时,记录一个宏是一个好主意。

在这种情况下,单击功能区的“开发人员”选项卡上的“记录宏”,冻结顶行,然后停止录制。Excel将为您录制以下宏,该宏也可完成此工作:

代码语言:javascript
运行
复制
With ActiveWindow
    .SplitColumn = 0
    .SplitRow = 1
End With
ActiveWindow.FreezePanes = True
票数 23
EN

Stack Overflow用户

发布于 2012-07-13 06:05:47

录制的宏的问题与内置操作的问题相同: Excel选择冻结顶部可见行,而不是可以找到标题信息的实际顶部行。

在这种情况下,宏的目的是冻结实际的顶行。当我查看第405592行时,我需要检查列的标题(因为我在打开文件时忘记了冻结行),我必须滚动到顶部,冻结第一行,然后再次找到返回到第405592行的方法。因为我认为这是愚蠢的行为,所以我想要一个宏来纠正它,但是,正如我所说的,录制的宏只是模仿了同样的愚蠢行为。

我正在使用Office 2011 for Mac OS X Lion

更新(2分钟后):

我在这里找到了一个解决方案:http://www.ozgrid.com/forum/showthread.php?t=19692

代码语言:javascript
运行
复制
Dim r As Range 
Set r = ActiveCell 
Range("A2").Select 
With ActiveWindow 
    .FreezePanes = False 
    .ScrollRow = 1 
    .ScrollColumn = 1 
    .FreezePanes = True 
    .ScrollRow = r.Row 
End With 
r.Select 
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3232920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档