我制作了一个宏来更新图表轴上的值。
它分别分配给每个工作表而不是整个工作簿,所以我非常确定这个修复: ' Excel Worksheet_Change Event not working' 不适用。
它在Excel 2013上运行正常,但当我将它发送给其他用户使用Excel 2003& 2007它没有用。
我尝试添加application.event启用/禁用,以防止停止它 - 没有工作。
还尝试寻找一个图书馆勾选框但没有跳出来。
这里的代码是:
Private Sub Worksheet_Change(ByVal Target As Range)
'Format graph axis depending on what the dropdown value is
Dim DropBox As Range
Dim PaxRange As Range
Dim RevRange As Range
Dim AveRange As Range
Dim YoyRange As Range
Set DropBox = Range("FC96")
Set PaxRange = Range("A97")
Set RevRange = Range("A98")
Set AveRange = Range("A99")
Set YoyRange = Range("A100")
If Not Intersect(Target, DropBox) Is Nothing Then
If DropBox.Value = PaxRange.Value Then
'If it's passengers
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "#,##0"
End If
If DropBox.Value = RevRange.Value Then
'If it's revenue
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "£#,##0"
End If
If DropBox.Value = AveRange.Value Then
'If it's average
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "£#,##0.00"
End If
If DropBox.Value = YoyRange.Value Then
'If it's year-on-year
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormat = "#,##0%"
End If
DropBox.Select
End If
End Sub
VBA相当新鲜,无法找到任何有同样问题的人。 真的很感激任何帮助。
感谢。
答案 0 :(得分:0)
我最终解决了这个问题,所以为了vba和我一样糟糕的其他人的利益:
问题在于我发送给它的人有宏安全设置,不允许宏运行。
解决方案就像要求他们更改您喜欢的 this (Microsoft Office支持)的宏安全设置一样简单。
感谢。