人气 4653

[Excel技巧] excel VBA将指定的单元格区域定位到指定屏幕位置 [复制链接]

zzs1808 2017-11-29 16:43:39
有时由于我们工作表的内容表较多,往往需要移动滚动条定位到我们需要查询的位置那么我们是否可以将指定的单元格或者区域定位于屏幕的某个位置方便查询。
下面的示例我们用VBA自定义的函数把指定的单元格区域定位在屏幕的中间SubCenterOnCell(OnCellAsRange)
DimVisRowsAsInteger
DimVisColsAsInteger
'关闭屏幕更新
Application.ScreenUpdating=False
'激活区域所在的工作簿和工作表
OnCell.Parent.Parent.Activate
OnCell.Parent.Activate
'获取活动窗口的可视行数和列数
WithActiveWindow.VisibleRange
VisRows=.Rows.count
VisCols=.Columns.count
EndWith
'确定参考单元格并用GOTO方法将该单元格定位到屏幕左上角。
'该参考单元格用给定的单元格的行数和列数分别减去可视行数和可视列数除以2来确定。
'用MAX函数确保参考单元格的最小行数和列数为1。
WithApplication
.Gotoreference:=OnCell.Parent.Cells(.WorksheetFunction.Max(1,OnCell.Row+(OnCell.Rows.count/2)-(VisRows/2)),.WorksheetFunction.Max(1,OnCell.Column+(OnCell.Columns.count/2)-.WorksheetFunction.RoundDown((VisCols/2),0))),Scroll:=True
EndWith
'选择给定的单元格
OnCell.Select
'启用屏幕更新
Application.ScreenUpdating=True
EndSub
在工作表中调用此函数,在“sheet22”表格中的工作表激活时间写函数,定位区域Range("p30:q30")为屏幕中英PrivateSubWorksheet_Activate()
CenterOnCellRange("p30:q30")
EndSub
效果图:

1511946004372181.png

1511946004372181.png
您需要登录后才可以回帖 登录 | 立即注册

QQ|手机版|精益人 ( 沪ICP备19004111号-1 )|网站地图

GMT+8, 2024-12-22 22:58 , Processed in 0.547334 second(s), 22 queries .

Powered by Lean.ren X3.5 Licensed  © 2001-2030 LEAN.REN