簡體   English   中英

通過標題VBA定義范圍

[英]Define Range by Header VBA

我在VBA中有一個范圍定義,如下所示:

Sheet5.Range(Range("K2"), Sheet5.Range("K2").End(xlDown))

這有效,但如果我的報告的布局發生變化,它將無法正常工作。 我想知道是否可以根據列第一行中的標題來定義范圍? 任何有關此問題的幫助將不勝感激!

以下示例根據名稱搜索標頭。 在該示例中,它根據匹配為整個列Red ,但您可以更改它。 變量應該很容易理解,但請告訴我相關問題。

Sub Color_Range_Based_On_Header()
    Dim rngHeaders As Range
    Dim rngHdrFound As Range

    Const ROW_HEADERS As Integer = 1
    Const HEADER_NAME As String = "Location"

    Set rngHeaders = Intersect(Worksheets("Sheet1").UsedRange, Worksheets("Sheet1").Rows(ROW_HEADERS))
    Set rngHdrFound = rngHeaders.Find(HEADER_NAME)

    If rngHdrFound Is Nothing Then
        'Do whatever you want if the header is missing
        Exit Sub
    End If

    Range(rngHdrFound, rngHdrFound.End(xlDown)).Interior.Color = vbRed

End Sub

您可以使用任何您想要的名稱命名范圍。 在左上角,您可以看到所選范圍的ID。 如果您在其中鍵入名稱“Header_Cell”,則可以將代碼更改為:

Sheet5.Range(Range("Header_Cell"), Sheet5.Range("Header_Cell").End(xlDown))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM