excel中利用VBA将指定的单元格定位于屏幕中央

来源:转载

如果工作表中的单元格都具有相同的行高和列宽,我们可以用VBA的方法将给定的单元格和区域定位于屏幕中央,下面是VBA代码:

Sub CenterOnCell(OnCell As Range)

Dim VisRows As Integer

Dim VisCols As Integer

'关闭屏幕更新

Application.ScreenUpdating = False

'激活区域所在的工作簿和工作表

OnCell.Parent.Parent.Activate

OnCell.Parent.Activate

'获取活动窗口的可视行数和列数

With ActiveWindow.VisibleRange

VisRows = .Rows.Count

VisCols = .Columns.Count

End With

' 确定参考单元格并用GOTO方法将该单元格定位到屏幕左上角。

' 该参考单元格用给定的单元格的行数和列数分别减去可视行数和可视列数除以2来确定。

' 用MAX函数确保参考单元格的最小行数和列数为1。

With Application

.Goto reference:=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

End With

'选择给定的单元格

OnCell.Select

'启用屏幕更新

Application.ScreenUpdating = True

End Sub

假如给定的区域为M50:N51,可以在VBA中用下面的方法调用上述代码:

CenterOnCell Range("m50:n51")

分享给朋友:
您可能感兴趣的文章:
随机阅读: