我试图使用VBA在excel工作簿的工作表中获取图表的数据。我需要的数据范围在同一工作簿中,但在不同的工作表中。
我需要以单元格格式写出该范围,因为该列并不总是相同,它在每次执行时都会发生变化,我的意思是:
Range(Cells(3,5),Cells(3,column).value
当我从其他工作表中获取数据时,会出现问题。
如果我写:
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range(Cells(3,5),Cells(3,column).Value
我没问题,一切都好。但是当我从其他表中获取数据时:
ActiveChart.SeriesCollection(1).Values = Sheets("Data").Range(Cells(3,5),Cells(3,column).Value
我得到了
运行时错误' 1004':应用程序定义或对象定义的错误
仅当我使用Cells格式指定范围时才会发生这种情况。如果我使用格式Range("E5:J5").Value
,我对数据表没有任何问题,但是在这种格式中我无法或者不知道如何在每次执行中指定列。
答案 0 :(得分:1)
您收到错误,因为Cells
未正确限定。这意味着,在这段代码中,
Sheets("Data").Range(Cells(3,5),Cells(3,column)).Value
你暗示的是
Sheets("Data").Range(ActiveSheet.Cells(3,5),ActiveSheet.Cells(3,column)).Value
这显然没有意义,因为ActiveSheet
与Sheets("Data")
不同。
您可以这样做:
Sheets("Data").Range("E3").Resize(1, rangeWidth).Value
在您的具体情况下,您可以将rangeWidth
替换为column - 4
,因为第E
列是第5列。