是否返回到范围内的最后一个活动单元格,忽略指定范围外的任何活动单元格



是否可以使用VBA创建一个宏来选择指定范围内的最后一个活动单元格?例如,如果我定义的范围是A1:A10,我选择A2,然后在我之前定义的范围之外随机选择几个单元格,我如何使用VBA返回A2?此外,如果在我重新选择A2之后,现在向下移动到A5,我将如何在以后使用宏返回到A5?

尝试的代码:

Sub PreviousCell()
Dim PrevCell As Range
Range("A2").Select
Set PrevCell = ActiveCell
Range("A1").Select
MsgBox "Previous cell was " & PrevCell.Address & Chr(10) & "Active cell is " & ActiveCell.Address
End Sub

感谢您的帮助。我的VBA知识非常有限。非常感谢!

我自己想好了。我不确定这是最干净的方法,但它对我有效。

我在模块1:中创建了一个全局变量

Option Explicit
Global LastCell As Range
Global ReturnToCell As Range

在模块2中,我创建了一个Sub,以后可以用快捷方式调用:

Sub CallActive()
ReturnToCell.Select
End Sub

在第1张中,我写道:

Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim LastCell As Range
Set LastCell = Range("[YOUR RANGE HERE]")
If Not Intersect(ActiveCell, LastCell) Is Nothing Then
Set ReturnToCell = ActiveCell
End If
End Sub

然后,我将宏CallActive分配给ctrl+t。整个过程意味着,如果我选择指定范围内的任何单元格,然后选择指定范围外的任何单元格。我可以按ctrl+t返回到指定范围内最后一个活动单元格。

相关内容

  • 没有找到相关文章

最新更新