Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel图表轴刻度_Vba_Excel_Charts - Fatal编程技术网

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你在帖子中没有提到任何关于图表表的内容,你写了“不同工作表上的多个图表”,这是不同的