我觉得应该有一个方法可以通过for next loop来增加它。我想基于C36中的单元格值使形状可见。有没有办法增加每次迭代的形状名称和值?我想使用100个这样的椭圆形形状,所以我希望这样的方法能起作用。或者,当然还有其他想法。
大量的代码:
Me.Shapes("OVAL 1").Visible = Range("C36").Value > 0
Me.Shapes("OVAL 2").Visible = Range("C36").Value > 1
Me.Shapes("OVAL 3").Visible = Range("C36").Value > 3
等等...
希望这样:
Private Sub Worksheet_Calculate()
Dim i as Integer, x as Integer
For i = 1 to 100
For x - 0 to 99
Me.Shapes("OVAL " & i).Visible = Range("C36").Value > x
Next x
Next i
End Sub`
答案 0 :(得分:0)
我认为您正在尝试仅显示C36处的值大于其数字后缀减一的那些形状。如果是这样,您可以遵循以下原则:
Option Explicit
Private Sub Worksheet_Calculate()
Dim i As Integer
For i = 1 To 100
'Shape will be visible if a value at C36 on this worksheet is larger
'than (the shape's index suffix minus one).
Me.Shapes("OVAL " & i).Visible = Me.Range("C36").Value > (i - 1)
Next
End Sub
要获得更高的性能,请将C36的值读入类型double
的变量中,在循环之前,然后在循环中使用它。