所以我的宏意味着从单独的文件中获取最新数据并将它们粘贴到正确行中的下一个空单元格中。之后,它应该编辑一个图表,以便绘制最新的6个数据点。到目前为止,我有这个:
Sub Update(startCell, data, sht, cht, sers)
ActiveWorkbook.Sheets(sht).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 String
Dim ChrtNm As String
Dim temp As Variant
Set temp = Worksheets(sht).ChartObjects(cht).chart.SeriesCollection(sers)
ChrtNm = temp.Name
Set x = ActiveCell
Set y = ActiveCell.Offset(0, -5)
NewRng = x.Address & ":" & y.Address
NewRng = "='" & ChrtNm & "'!" & NewRng
ActiveCell.Value() = data
ActiveSheet.ChartObjects(cht).Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(sers).Values = NewRng
End Sub
一切都可以工作到最后,而不是传递SeriesCollection(sers)。重新获取所需的信息,以获取它传递的信息,作为值创建的文字字符串。我使用这种复杂的方法,因为其他似乎工作,当我尝试录制一个marco只是为了学习如何编辑系列这是我得到的:
Sub ChangeRange()
'
' ChangeRange Macro
'
'
ActiveSheet.ChartObjects("Graphique 3").Activate
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).Values = "='Stewardship-Online'!$AP$29:$AU$29"
End Sub