在A列中选择包含内容的单元格?

时间:2018-11-12 14:43:12

标签: excel vba

如何在A列中选择包含内容的单元格?

例如

我可能有一个姓名列表

John 
Jack 
James

和其他更长的时间列表

John 
Jack
James
Jimmy

这些将始终位于单元格A1-AX中,X是最后一行。

对于第一个示例,我将使用代码

Range("A1:A3").Select

第二次,

Range("A1:A4").Select

我想使用自动执行此操作的代码,而不管列表中有多少。

4 个答案:

答案 0 :(得分:1)

在代码的第四行上编辑工作表名称(在此处保留引号),然后运行代码。

Option Explicit

Sub LRow()

    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")  '<=== Edit Sheet Name
    Dim LRow As Long

    LRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    ws.Range("A1:A" & LRow).Select

End Sub

答案 1 :(得分:0)

Private strPrevCellAddress As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim r As Excel.Range

    If strPrevCellAddress <> "" Then
        Range(strPrevCellAddress).Interior.ColorIndex = -4142
    End If

    Set r = Cells(1, Target.Column)
    Set r = r.Resize(r.End(xlDown).Row, 1)
    r.Interior.Color = vbRed
    strPrevCellAddress = r.Address

End Sub

答案 2 :(得分:0)

您需要参考Worksheet.UsedRange.Rows属性以找到行数。

Dim x As String
x = Me.UsedRange.Rows.Count
Me.Range("A1:A" + x).Select

确保相关工作表处于活动状态,否则您将收到应用程序错误。

答案 3 :(得分:0)

Sub SelectStartToEnd(sheetName as string, Column as string, Optional StartIndex as integer)
    Dim StartHere as string

    If IsMissing(StartIndex) = False then
        StartHere = Column + CStr((1 + StartIndex))
    End If

    Sheets(sheetName).Range(startHere + ":" + Range(StartHere).SpecialCells(xlCellTypeLastCell).Address).Select
End Sub 

这超越了大多数方法的利弊。

https://www.excelcampus.com/vba/find-last-row-column-cell/