无法使用VBA更新图表系列

时间:2017-11-08 19:32:02

标签: excel vba excel-vba excel-charts

我已经编写了一个函数,当运行时从另一个工作表获取最新数据,然后调整图表系列,以便绘制最后6个月的数据。在更新图表之前,每件事情都有效。我得到了

  

运行时错误'438'对象不支持此属性或方法

这是我的代码

Sub Update(startCell, data, sheet, charts, series)
    ActiveWorkbook.Sheets(sheet).Activate
    Range(startCell).Select
    Do While (Not IsEmpty(ActiveCell))
        ActiveCell.Offset(0, 1).Select
    Loop
    Dim x As Range
    Dim y As Range
    Dim NewRng As Range

    Set x = ActiveCell
    Set y = ActiveCell.Offset(0, -5)
    Set NewRng = Range(x.Address & ":" & y.Address)

    ActiveCell.Value() = data
    Worksheets(sheet).ChartObjects(charts).SeriesCollection(series).SetSourceData     Source:=NewRng.Address()


End Sub

1 个答案:

答案 0 :(得分:0)

新答案

将工作表的变量名称更改为sht,将图表更改为cht,将系列更改为sers 工作表,图表和系列都是VBA / Excel的保留字。

使NewRng成为保存工作表名称和范围的文本变量

<div  id="leftdiv"   style="float:left;display:inline-block;height:100px;font-family:Helvetica;font-size:14px;width:300px;border:1px solid red;" contenteditable>
    <div>
        first text
    </div>
    <div>
        second text
    </div>
    ...
    <div>
        other texts
    </div>
</div>
<div  id="rightdiv" style="margin-left:1em;display:inline-block;float:left;width:300px;height:100px;font-family:Helvetica;font-size:14px;border:1px solid red;" contenteditable>
    <div>
        first text
    </div>
    <div>
        second text
    </div>
    ...
    <div>
        other texts
    </div>
</div>

我把它缩小到:

  $('#leftdiv').on('mousedown', function() {
        $('#leftdiv').on('selectstart', function() {
            document.getElementById('rightdiv').tabIndex = -1 ;
            document.getElementById('rightdiv').focus();
            var range  = document.createRange();
            range.selectNodeContents(this);
            var sel  = window.getSelection();
            sel.removeAllRanges();
            sel.addRange(range);
        });
 });

只要sht获得类似'Stewardship-Online'的值,图表就会获得Graphique 3的文本值,而sers是1到6的整数(图表中有6行。