[英]How to get a range of cells in excel vba taking data from other sheet?
我正在尝试使用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”:应用程序定义或对象定义的错误
仅当我使用“单元格”格式指定范围时才会发生这种情况。 如果我使用Range("E5:J5").Value
格式,则数据表没有问题,但是以这种格式,我不能或不知道如何在每次执行中指定列。
因为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
在您的特定情况下,因为E
列是第5列,所以可以用rangeWidth
column - 4
列替换rangeWidth
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.