Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel VBA-图表引用不起作用_Vba_Excel - Fatal编程技术网

Excel VBA-图表引用不起作用

Excel VBA-图表引用不起作用,vba,excel,Vba,Excel,我正在尝试使用Sheet1中的值更新不同工作表(Sheet2)中图表的最大比例和最小比例。然而,我得到的对象要求的错误。代码如下: Sub ChangeAxisScale() Dim wsChart As Chart Dim wsInput As Worksheet Dim LastRow As Long Set wsInput = ThisWorkbook.Sheets("Sheet1") With Sheet2.ChartObjects("Chart").Chart.Axes(xlVa

我正在尝试使用Sheet1中的值更新不同工作表(Sheet2)中图表的最大比例和最小比例。然而,我得到的对象要求的错误。代码如下:

Sub ChangeAxisScale()
Dim wsChart As Chart
Dim wsInput As Worksheet
Dim LastRow As Long


Set wsInput = ThisWorkbook.Sheets("Sheet1")

With Sheet2.ChartObjects("Chart").Chart.Axes(xlValue)
        LastRow = wsInput.Cells(wsInput.Rows.Count, "D").End(xlUp).Row
        .MaximumScale = wsInput.Cells(LastRow, 4).Value
        .MinimumScale = wsInput.Range("D2").Value
End With
End Sub
出现错误的行是Sheet2.ChartObjects(“图表”).Chart.Axes(xlValue)。我是否错误地引用了图表


谢谢。

如果图表位于内部名称为“Sheet2”的工作表上,则代码运行良好。如果图表位于不同名称的工作表上,代码将失败

您可能需要使用Dim语句来声明并正确设置图表所在的工作表

Sub ChangeAxisScale()
Dim wsChart As Chart ' you don't really need that, right?
Dim wsInput As Worksheet, wsChartSheet As Worksheet
Dim LastRow As Long


Set wsInput = ThisWorkbook.Sheets("Sheet1")
Set wsChartSheet = ThisWorkbook.Sheets("Sheet2")

With wsChartSheet.ChartObjects("Chart").Chart.Axes(xlValue)
        LastRow = wsInput.Cells(wsInput.Rows.Count, "D").End(xlUp).Row
        .MaximumScale = wsInput.Cells(LastRow, 4).Value
        .MinimumScale = wsInput.Range("D2").Value
End With
End Sub