如何在excel vba中获取一系列单元格从其他工作表中获取数据?

时间:2014-06-20 07:09:34

标签: vba excel-vba excel

我试图使用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,我对数据表没有任何问题,但是在这种格式中我无法或者不知道如何在每次执行中指定列。

1 个答案:

答案 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

这显然没有意义,因为ActiveSheetSheets("Data")不同。

您可以这样做:

Sheets("Data").Range("E3").Resize(1, rangeWidth).Value

在您的具体情况下,您可以将rangeWidth替换为column - 4,因为第E列是第5列。