请教EXCEL,VBA宏相关问题,请高手指教!

2024-11-05 03:16:05
推荐回答(2个)
回答1:

点击要放入图形的单元格标签,点右键选“查看代码”,把下面代码复制进去。
第一次执行时,要先执行“添加形状”宏,只执行一次即可,就自动生成圆、矩形与直线,以后就不用再执行了。
只要改变A1\A2\A3格中数值,就可使三个形状显示或隐藏了。
Sub 添加形状()
With ActiveSheet.Shapes.AddShape(msoShapeOval, 180, 0, 72, 72) '添加一个圆形
.Name = "yuan" '命名
.Fill.ForeColor.RGB = RGB(0, 255, 0) '设置前景色
End With
With ActiveSheet.Shapes.AddShape(msoShapeRectangle, 180, 80, 72, 72) '添加一个矩形
.Name = "ju" '命名
.Fill.ForeColor.RGB = RGB(255, 0, 0) '设置前景色
End With
With ActiveSheet.Shapes.AddLine(180, 160, 280, 160) '添加一个直线
.Name = "xian" '命名
.Fill.ForeColor.RGB = RGB(255, 0, 0) '设置前景色
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If [a1] > 0 Then
ActiveSheet.Shapes("yuan").Visible = msoTrue
Else
ActiveSheet.Shapes("yuan").Visible = msoFalse
End If
If [a2] > 0 Then
ActiveSheet.Shapes("ju").Visible = msoTrue
Else
ActiveSheet.Shapes("ju").Visible = msoFalse
End If
If [a3] > 0 Then
ActiveSheet.Shapes("xian").Visible = msoTrue
Else
ActiveSheet.Shapes("xian").Visible = msoFalse
End If
End Sub

回答2:

既然有多个单元格,那建议用 selectionchange 事件来激活,再配合 select case 语句就行了。