Excel 是否可以循环一系列非连续单元格,即F35、F46、F54、F62…等
我正在尝试循环许多形状以根据另一工作表中对应单元格中是否存在大于0的值来更改颜色。循环中的每个下一个形状是一个连续的数字,但相应的单元格不是,即形状3对应于F34,形状4对应于F46 ect。问题在于非连续单元 这是我目前掌握的密码Excel 是否可以循环一系列非连续单元格,即F35、F46、F54、F62…等,excel,vba,for-loop,Excel,Vba,For Loop,我正在尝试循环许多形状以根据另一工作表中对应单元格中是否存在大于0的值来更改颜色。循环中的每个下一个形状是一个连续的数字,但相应的单元格不是,即形状3对应于F34,形状4对应于F46 ect。问题在于非连续单元 这是我目前掌握的密码 Sub Shape_Color_Change() Dim x As Integer Dim y As Integer y = Array(35 Or 46 Or 54 Or 62) For x = 3 To 6 If Worksheets("Cell
Sub Shape_Color_Change()
Dim x As Integer
Dim y As Integer
y = Array(35 Or 46 Or 54 Or 62)
For x = 3 To 6
If Worksheets("Cell").Cells(y, 35) > 0 Then
Worksheets("Shape").Shapes(x).Fill.ForeColor.RGB = RGB(0, 51, 204)
Else
Worksheets("Shape").Shapes(x).Fill.ForeColor.RGB = RGB(102, 102, 102)
End If
Next x
End Sub
目前它给了我运行时错误13,但在尝试不同的方法时,我也得到了错误1004。不过,这一个似乎与我最接近。使用适当的数组并循环通过它。您的数组应该包含相关的单元格,以便根据需要进行调整
Sub Shape_Color_Change()
Dim x As Long
Dim y As Variant
y = Array("F34", "F46", "F54", "F62") 'zero-based
For x = 3 To 6
If Worksheets("Cell").Range(y(x - 3)) > 0 Then
Worksheets("Shape").Shapes(x).Fill.ForeColor.RGB = RGB(0, 51, 204)
Else
Worksheets("Shape").Shapes(x).Fill.ForeColor.RGB = RGB(102, 102, 102)
End If
Next x
End Sub
处理数组索引的好方法。干杯,大帮助!昨天才发现循环,所以我还在学习!我的荣幸。谢谢@Gary'sStudent.@C.Lawn建议:定义
Const rgbBrightBlue=&HCC3300
和Const rgbDarkGrey=&H666666
,并用这些常量替换内联的RGB
函数调用。