假如有10个表,拉动滚动条,调整当前表的显示位置,怎样让Excel每个表都显示同一个位置?
这要用VBA来做了。
第一步:
你的工作簿格式是.xlsx格式,需要转换格式:
打开你的工作簿---另存为---.xlsm启用宏的工作簿。
第二步:
按Alt+F11打开VBA编辑器,
点击:插入--模块,
在左侧双击模块,
在右侧粘贴如下代码:
Public myX&, myY&
Sub 我的位置()
Dim iStr$
iStr = MsgBox("点是:重新记录显示位置!" _
& vbLf & "点否:清除已记录的位置!" _
& vbLf & "取消:即不重记也不清除!", _
vbYesNoCancel + 512 + 32) '弹出选择窗口
If StrPtr(iStr) = 0 Then Exit Sub
If iStr = vbYes Then
myX = ActiveWindow.ScrollColumn '记录当前显示的列号
myY = ActiveWindow.ScrollRow '记录当前显示的行号
ElseIf iStr = vbNo Then
myX = 0 '清除已记录的列号
myY = 0 '清除已记录的行号
End If
End Sub
第三步:
在左侧双击ThisWorkbook
在右侧粘贴如下代码:
Private Sub Workbook_Open() '打开工作簿时触发
Application.OnKey "^1", "我的位置" '设置快捷键Crtl+1
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If myX > 0 And myY > 0 Then
ActiveWindow.ScrollColumn = myX
ActiveWindow.ScrollRow = myY
End If
End Sub
【至此,已经完成了!!!】
需要关闭工作簿后重新打开,快捷键才生效,快捷键是Ctrl+1
如果每次打开工作簿时,都会提示你启用宏,可以再增加一步设置:
第四步:
在工作簿中,点击左上角的:
文件--选项--信任中心--信任中心设置--宏设置--选中:启用VBA宏(不推.....)
记住两点:
1、首次添加代码后,需要重新打开工作簿,快捷键才生效。
2、你的快捷键是Ctrl+1