首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前置ActiveCell.Address

前置ActiveCell.Address
EN

Stack Overflow用户
提问于 2019-06-16 08:10:36
回答 1查看 38关注 0票数 0

我是vba的新手,我有一个相当简单的问题。我想获得最后一个活动单元格的地址。例如,如果我在A5并转移到B6,是否有一个命令可以获取地址A5?

任何类型的提示或建议都是非常感谢的!

我尝试过ActiveCell.Previous,但它提供了活动单元格左侧的单元格地址。偏移量对我没有用处,因为在用户更改单元格内的内容之前,地址A5是未知的。

EN

回答 1

Stack Overflow用户

发布于 2019-06-16 08:50:51

最明显的方法是使用Excel的事件。您可以查看SelectionChange事件,这将使您能够在模块级存储先前的选择,然后在事件的后续触发时检索该值。

在下面的示例中,我使用了Workbook对象的代码隐藏,因为它使您能够在任何工作表上注册选择,但您可以只在一个工作表上执行相同的操作。

如果您只对某些单元格感兴趣,那么可以查看Intersect函数来改进该例程。

代码语言:javascript
复制
Option Explicit

Private pPreviousWorksheet As Worksheet
Private pPreviousSelection As Range

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

    'Check SH object is a worksheet.
    If TypeOf Sh Is Worksheet Then

        'Check we have instances of previous objects.
        If Not pPreviousWorksheet Is Nothing And Not pPreviousSelection Is Nothing Then

            'Process code here...
            MsgBox "Previous was " & _
                pPreviousWorksheet.Name & "!" & _
                pPreviousSelection.Address(False, False)

        End If

        'Re-set the previous objects.
        Set pPreviousWorksheet = Sh
        Set pPreviousSelection = Target

    End If
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56615105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档