使最后一个单元格在行中激活

时间:2017-09-22 16:32:31

标签: excel-vba vba excel

如何使用下面的代码将“B5”替换为“LastCol”,以便我可以连续激活最后一个非空白单元格?

Sub LastColumnInOneRow()
'Find the last used column in a Row: row 1 in this example
    Dim LastCol As Integer
    With ActiveSheet
        LastCol = .Cells(6, .Columns.Count).End(xlToLeft).Column
    End With

    Worksheets("WARNINGS").Range("B5").Activate
    ActiveCell.Offset(2, 0).Activate
End Sub

谢谢

3 个答案:

答案 0 :(得分:0)

你可以这样做:

Sub LastColumnInOneRow()
'Find the last used column in a Row: row 1 in this example
    Dim LastCol As Integer
    With ActiveSheet
        LastCol = .Cells(6, .Columns.Count).End(xlToLeft).Column
    End With
    With Worksheets("WARNINGS")
        .Activate
        .Cells(5,LastCol).Activate
    End With
    ActiveCell.Offset(2, 0).Activate
End Sub

答案 1 :(得分:0)

这个问题花了我一分钟才弄明白,但试试这个

Worksheets("WARNINGS").Cells(6, LastCol + 1).Activate

最后。

    Sub LastColumnInOneRow()
    'Find the last used column in a Row: row 1 in this example

    Dim LastCol As Long

    With ActiveSheet
        LastCol = .Cells(6, .Columns.Count).End(xlToLeft).Column
    End With


    Worksheets("WARNINGS").Cells(6, LastCol + 1).Activate

    End Sub

答案 2 :(得分:0)

出色!非常感谢。这是我最后使用的那个。

这是对数据透视表结果进行排序的第一步。 我保存了一个宏来对值进行排序,但是当我尝试运行它时,我现在收到“下标超出范围”警告。我想宏脚本正在使用我需要替换的静态范围,以便它可以运行到我可能拥有的任何数据透视表结果。

但我需要替换哪一行宏代码?

Sub SortLargestWarningsCount()

'查找行中最后使用的列:此示例中的第1行

Dim LastCol As Integer
    With ActiveSheet
        LastCol = .Cells(6, .Columns.Count).End(xlToLeft).Column
    End With

Worksheets("WARNINGS").Cells(6, LastCol).Activate
ActiveCell.Offset(1, 0).Activate

'从最大排序

ActiveSheet.PivotTables("WarningsPivotTable").PivotFields( _
    "[Warnings].[Column5].[Column5]").AutoSort xlDescending, _
    "[Measures].[Count of Column5]", ActiveSheet.PivotTables("WarningsPivotTable"). _
    PivotColumnAxis.PivotLines(12), 1

End Sub