VBA未选择数据中的最后一行

时间:2016-03-30 14:13:44

标签: excel vba excel-vba

我觉得我错过了什么。 我有一个表ID,名称,状态作为标题。 表的标题从B2开始,数据从B3开始 该表是动态的,由另一个工作簿中的vba代码生成。 有时可能是过滤数据,但表中没有间隙。

有时用户会在“名称”列(C)中选择某人。 点击一下按钮就可以将它们缩小到最后一条记录。

我知道有很多方法可以实现这一点,但我似乎无法让它们中的任何一个工作,我无法弄清楚原因。

这是我当前的代码,但我尝试过UsedRange,CurrentRegion,表名,整个作品。

Sub MoveToLastRow()

    Dim LastRow As Long

    LastRow = ActiveSheet.Cells(Rows.Count, "C").End(x1Up).Row

End Sub

我点击按钮或尝试选择一个名称来逐步执行代码,它什么也没做。

感谢您的投入。 〜唐

3 个答案:

答案 0 :(得分:1)

您可以使用以下简单的VBA代码段来选择包含列" C"中的数据的最后一个单元格:

Sub MoveToLastRow()
    ActiveSheet.Range("C" & Rows.Count).End(xlUp).Select
End Sub

注意 :您的原始代码包含语法错误,因此无法正常工作:结束( x1Up )。行应该写为结束( xlUp )。行。以下是执行相同操作的更正代码段(即,使用列&#34中的数据选择最后一个单元格; C")

Sub MoveToLastRow()
    Dim LastRow As Long
    LastRow = ActiveSheet.Cells(Rows.Count, "C").End(xlUp).Row
    ActiveSheet.Range("C" & LastRow).Select
End Sub

希望这可能会有所帮助。

答案 1 :(得分:1)

添加:

Application.GoTo Range("C" & LastRow)
在代码末尾的

,使光标移动到该单元格。

答案 2 :(得分:0)

在您的代码中,如果您在代码顶部使用.End(x1Up),则.End(xlUp)更改为Option Explicit,它会向您显示VBA认为它是变量。