如何引用已知列数但您不知道哪一行的范围?渲染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
答案 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))
这可能看起来相当冗长,但它可以让您完全灵活地指定范围,因为您可以为每个单元格参数使用变量。