VBA:找到列标题后设置列范围

时间:2017-11-24 15:52:15

标签: excel vba excel-vba

我希望能够在我搜索的列标题下为列的底部设置第二个单元格的范围。我不想选择整个列,而只是选择从第二个单元格开始使用的范围(不包括标题)。

我能够编写一些代码来查找标题,但是我有一些问题将单元格地址(字符串)转换为范围,然后为该列的其余部分选择使用的范围。以下是我到目前为止:

Sub colRange()

Dim ws As Worksheet
Dim hostCellRange As Range

Set ws = Worksheets("Sheet1")

With ws
    With .Range("A1", .Cells(1, .Columns.Count).End(xlToLeft))
        Set cfind = .Find(What:="host", LookIn:=xlValues, lookat:=xlWhole)
        If Not cfind Is Nothing Then
            hostCell = cfind.Address
            Set hostCellRange = ws.Range(hostCell)
        End If
    End With
End With


End Sub

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

正确的方法是

curses

示例1

enter image description here

示例2

enter image description here

Interesting Read on how to find the last row correctly

答案 1 :(得分:1)

尝试使用hostCellRange中的Offset设置cfind,您不需要Address

If Not cfind Is Nothing Then
    Set hostCellRange = .Range(cfind.Offset(1, 0), cfind.End(xlDown))
End If

注意cfind.End(xlDown)适用于中间没有空单元格的范围。