我有一个我创建的仪表板,它有一个速度表(如下图所示)。我直接在工作表上使用以下代码(不是模块 - 我有一个模拟模块(没有代码,但是sub和end sub)
我不时会收到对象类型错误和其他类型的冲突错误。我希望以一种不会出现任何错误的方式改进代码。
下面代码中的244基本上是将“箭头”形状指向100%的角度,与其相乘的单元格范围是适当调整旋转的%值。
请指教。谢谢
'Aligns the dials on the speedometer'
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Worksheets("TL Dash").Shapes.Range(Array("Group 8")).Select
Selection.ShapeRange.Rotation = Range("B14").Value * 244
'ActiveCell.Select'
ThisWorkbook.Worksheets("TL Dash").Shapes.Range(Array("Group 223")).Select
Selection.ShapeRange.Rotation = Range("F15").Value * 244
'ActiveCell.Select'
ThisWorkbook.Worksheets("TL Dash").Shapes.Range(Array("Group 216")).Select
Selection.ShapeRange.Rotation = Range("J15").Value * 244
'ActiveCell.Select'
End Sub
答案 0 :(得分:0)
剪切Select
并直接处理形状:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Me.Range("B14,F15,J15")) Is Nothing Then
With ThisWorkbook.Worksheets("TL Dash")
.Shapes("Group 8").Rotation = Me.Range("B14").Value * 244
.Shapes("Group 223").Rotation = Me.Range("F15").Value * 244
.Shapes("Group 216").Rotation = Me.Range("J15").Value * 244
End With
End If
End Sub
...并添加一些错误检查以确保所有值都是数字。