2016-05-05 83 views
0

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

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 
+2

'Range(“A”&i&“:J”&i)' –

+0

这有效。谢谢。 – Dombey

回答

1

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

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

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

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

或在你的榜样

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

但是人们必须要小心! “单元格”范围的默认工作表是“活动工作表”。如果这与WSData不一样,则会导致运行时错误。然而,这可以很容易地通过指定的工作表避免其中的“单元格格式”属于:

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

这看起来相当冗长,但它可以让你在指定的范围内,你可以使用变量对每个完整的灵活性的细胞参数。