代码之家  ›  专栏  ›  技术社区  ›  Samuel Hulla

动态VBA范围选择器的正确语法

  •  0
  • Samuel Hulla  · 技术社区  · 7 年前

    我的动态范围选择器有问题。

    我发现了其他一些实现方法,但为了清楚起见,我无法找到描述的范围选择方法,我真的很好奇为什么它不起作用:

    作为测试,我想改变一个范围的颜色 Range(B20:D25) .

    使用以下代码

    Private Sub colortest()
      Dim ws as Worksheet: Set ws = Sheets("Sheet1")
    
      For i = 20 to 25
        ws.Range("B" & i & ":D" & i).Interior.ColorIndex = RGB(166, 166, 166)
      Next i
    
    End Sub
    

    基本上我想根据索引逐行 (在我的实际代码中动态行索引,因此这个带有for循环的算法,我需要逐行进行,因为有些行可以跳过) 然后用颜色填充范围。

    所以预期的结果是

    enter image description here

    我得到以下错误:

    enter image description here

    我想这和我使用 .Range("Bi:Di") 选择器错误。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Samuel Hulla    7 年前

    选择器实际上工作正常。

    下标超出范围错误实际上是由于我试图组合 .ColorIndex 具有RGB颜色编码的属性。

    这条线应该看起来像:

    ws.Range("B" & i & ":D" & i).Interior.ColorIndex = 15

    ws.Range("B" & i & ":D" & i).Interior.Color = RGB(166, 166, 166)