引用已知列和未知行的范围Excel VBA

时间:2016-05-05 00:29:32

标签: vba excel-2010

如何引用已知列数但您不知道哪一行的范围?渲染Range("A&i:J&i")的正确方法是什么?

For i = 8 To WSData.Range("A8").End(xlDown).Row

        If Cells(i, 1) = "Overall Totals:" Then
            WSData.Range("A&i:J&i").Interior.Color = RGB(217, 217, 217)
        End If

Next

1 个答案:

答案 0 :(得分:1)

斯科特的答案当然非常正确。但是,还有其他一些方法可以引用您可能会觉得有用的变量范围。

1)您也可以使用WSData.Range("A10", "J10"),即您将左上角和右下角的单元格指定为两个单独的参数。 (paraneters的顺序实际上并不重要!) 在您的示例中,您将使用:WSData.Range(" A"& i," J"& i)

2)我发现使用数字而不是列的字母是有用的,特别是如果您的列预先未知。基本结构如下。

WSData.Range(Cells(1,10), Cells(10,10) 'A10 to J10)

或在您的示例中

WSData.Range(Cells(1,i), Cells(10,i))

但是必须要小心! “单元格”范围的默认工作表是“活动工作表”。如果这与WSData不同,则会导致运行时错误。但是,通过指定" Cells"的工作表,可以很容易地避免这种情况。属于:

WSData.Range(WSData.Cells(1,i), WSData.Cells(10,i))

这可能看起来相当冗长,但它可以让您完全灵活地指定范围,因为您可以为每个单元格参数使用变量。