是否可以使用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返回到指定范围内最后一个活动单元格。