通过标题VBA定义范围

我在VBA中有一个范围定义,如下所示:

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

这工作,但如果我的报告的布局变化,它将无法正常工作。 我想知道是否可以根据列的第一行中的标题来定义范围? 任何帮助这个问题将不胜感激!

以下示例根据名称search标题。 在这个例子中,它根据匹配对整个列Red进行着色,但是你可以改变它。 variables应该容易遵循,但请让我知道的问题。

 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 

你可以用任何你想要的名字命名一个范围。 在左上angular你可以看到所选范围的ID。 如果你在那里input一个名字,像“Header_Cell”,你可以改变你的代码:

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