Vba Excel图表轴刻度
已使用此功能将图表轴链接到单元格值Vba Excel图表轴刻度,vba,excel,charts,Vba,Excel,Charts,已使用此功能将图表轴链接到单元格值 Sub ScaleAxes() Dim wks As Worksheet Set ws = Worksheets("AXIS") Set cht = ActiveWorkbook.ChartObjects("ChartName1","ChartName2") For Each cht In ActiveWorkbook.ChartObjects cht.Activate With Active
Sub ScaleAxes()
Dim wks As Worksheet
Set ws = Worksheets("AXIS")
Set cht = ActiveWorkbook.ChartObjects("ChartName1","ChartName2")
For Each cht In ActiveWorkbook.ChartObjects
cht.Activate
With ActiveChart.Axes(xlCategory, xlPrimary)
.MaximumScale = ws.Range("$B$12").Value
.MinimumScale = ws.Range("$B$11").Value
.MajorUnit = ws.Range("$B$13").Value
End With
Next cht
End Sub
我的目标是在一张带有轴值的工作表上更新不同工作表上的多个图表。大多数示例都在同一工作表上使用图表。我目前收到错误438-有什么想法吗?尝试下面的代码,代码中的解释作为注释:
Option Explicit
Sub ScaleAxes()
Dim Sht As Worksheet
Dim ws As Worksheet
Dim chtObj As ChartObject
Dim ChtNames
Set ws = Worksheets("AXIS")
' you need to get the names of the charts into an array, not ChartObjects array
ChtNames = Array("ChartName1", "ChartName2")
' first loop through all worksheet
For Each Sht In ActiveWorkbook.Worksheets
' loop through all ChartObjects in each worksheet
For Each chtObj In Sht.ChartObjects
With chtObj
'=== use the Match function to check if current chart's name is found within the ChtNames array ===
If Not IsError(Application.Match(.Name, ChtNames, 0)) Then
With .Chart.Axes(xlCategory, xlPrimary)
.MaximumScale = ws.Range("B12").Value
.MinimumScale = ws.Range("B11").Value
.MajorUnit = ws.Range("B13").Value
End With
End If
End With
Next chtObj
Next Sht
End Sub
如果是图表表,我需要更改图表对象吗?@tj123你在帖子中没有提到任何关于图表表的内容,你写了“不同工作表上的多个图表”,这是不同的