返回首页
当前位置: 主页 > Excel教程 > Excel VBA教程 >

Excel打开工作簿时总是跳转到最后更改内容的单元格

时间:2012-10-30 00:59来源:Office教程学习网 www.office68.com编辑:麦田守望者

在Excel中,能否快速返回到上次修改过内容的单元格,或者打开工作簿时总是让最后修改过的区域自动显示出来?

用省略第二参数的CELL函数可以返回最后更改的单元格地址,在工作表的某处输入下列公式:

=CELL("address")

即可查看最后更改的单元格地址,其中CELL函数的第一个参数为“address”,表示返回单元格的引用。

要在打开某个工作簿时自动跳转到最后更改内容的单元格区域,Excel没有提供直接的方法。但当修改某个单元格内容并回车、保存后,下次打开工作簿时,通常最后修改的单元格就是与当前单元格同列的上一行单元格,因为回车后会跳转到下一行的单元格。如果认为这样还不能符合要求,可以参考使用下面的VBA代码,不仅可以实现上述功能,而且在切换工作表时还能自动选择最后更改的区域并在状态栏中显示区域地址。

使用方法是按Alt+F11打开VBA编辑器,在“工程”窗口中双击“ThisWorkbook”,在代码窗口中粘贴下面的代码:

Private Sub Workbook_Open()
On Error GoTo endline
If isNameExist Then
Worksheets(GetShAndTarget(0)).Activate
Range(GetShAndTarget(1)).Select
Application.StatusBar = "最后修改:" & GetShAndTarget(1)
End If
endline:
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If isNameExist = False Then End
If Sh.CodeName = GetShAndTarget(0) Then
Range(GetShAndTarget(1)).Select
Application.StatusBar = IIf(GetShAndTarget(1) = "", "", "最后修改:" & GetShAndTarget(1))
Else
Application.StatusBar = ""
End If
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If isNameExist Then
ThisWorkbook.Names("最后修改的区域").RefersTo = Sh.CodeName & "!" & Target.Address
Else
ThisWorkbook.Names.Add Name:="最后修改的区域", RefersTo:=Sh.CodeName & "!" & Target.Address
End If
Application.StatusBar = "最后修改:" & Target.Address
End Sub

Private Sub Workbook_Deactivate()
Application.StatusBar = ""
End Sub

Function isNameExist() As Boolean
'判断指定的名称是否存在
isNameExist = False
For i = 1 To ActiveWorkbook.Names.Count
If ThisWorkbook.Names(i).Name = "最后修改的区域" Then
isNameExist = True
Exit For
End If
Next
End Function

Function GetShAndTarget()
'从名称中提取最后修改的工作表名和区域地址
If isNameExist Then
GetShAndTarget = Replace(Names("最后修改的区域"), "=", "")
GetShAndTarget = Replace(GetShAndTarget, """", "")
GetShAndTarget = Split(GetShAndTarget, "!")
End If
End Function

返回Excel工作表界面,在工作表中修改内容后,上述代码会新建一个工作簿级的名称“最后修改的区域”,并将最后更改内容的工作表名和区域地址保存在其中,打开工作簿时调用该名称并选择最后更改内容的工作表和区域。

------分隔线----------------------------
标签(Tag):excel excel2007 excel2010 excel2003 excel技巧 excel教程 excel实例教程 excel2010技巧
------分隔线----------------------------
推荐内容
猜你感兴趣