我已经编写了一个函数,当运行时从另一个工作表获取最新数据,然后调整图表系列,以便绘制最后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
答案 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行。