Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.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 - Fatal编程技术网

使用VBA重新创建Excel图表

使用VBA重新创建Excel图表,vba,excel,Vba,Excel,我在一张纸上有一些图表,其中已经有一些数据系列。我需要做的是找到一个具有特定名称的图表,然后用另一个系列重新填充它,其中的值来自VBA计算数组,而Xvalues来自工作表的单元格。 虽然它完美地找到了必要的图表,但我在图表上收到了非常奇怪的输出,就好像它是各种系列的组合。下面是我的代码示例: Set sh = ActiveSheet If sh.ChartObjects.Count > 0 Then For i = 1 To sh.ChartObjects.

我在一张纸上有一些图表,其中已经有一些数据系列。我需要做的是找到一个具有特定名称的图表,然后用另一个系列重新填充它,其中的值来自VBA计算数组,而Xvalues来自工作表的单元格。 虽然它完美地找到了必要的图表,但我在图表上收到了非常奇怪的输出,就好像它是各种系列的组合。下面是我的代码示例:

    Set sh = ActiveSheet
    If sh.ChartObjects.Count > 0 Then
        For i = 1 To sh.ChartObjects.Count
            With sh.ChartObjects(i)
            If .Chart.HasTitle = True And .Chart.ChartTitle.Text = "Price" Then
                .Chart.SeriesCollection(1).Delete
                .Chart.ChartTitle.Text = "Price"
                .Chart.SeriesCollection.NewSeries
                .Chart.SeriesCollection(1).Values = arr1()
                .Chart.SeriesCollection(1).XValues = Range("A" & nrow + 1 & ":A" & lastrow)
                End If
            End With
        Next i
    End If

你能帮我确定一下有什么问题吗?谢谢

乍一看,许多事情可能是错误的-正确的工作表是否处于活动状态?您将
sh
设置为活动工作表,但如果这是错误的工作表,它从一开始就变成梨形,您正在删除和添加一个系列-是否最好只更新现有系列,以便它保留该系列的所有属性-颜色、间距、标签等,
arr1()
在任何地方都没有定义,
Range(“a”)&nrow…
正在查看当前活动的工作表-这是正确的工作表吗?。您正在添加“Price”标题,即使该代码仅在图表标题为“Price”时才会运行。您只需按名称引用图表,而不必在每个图表中循环并使用sh.ChartObjects(“MyChartName”)检查标题…
。在XL2010中选择图表,单击布局功能区,图表名称位于属性中。