【发布时间】:2021-05-24 22:10:10
【问题描述】:
我需要一些帮助....我在 sheet1 中有这段代码:
Sheets("kips").Select
Dim i As Integer 'rows
Dim j As Integer 'columns
i = Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 5
With ActiveSheet.Shapes.AddChart.Chart
.Parent.Name = "Chart_" & (j - 1)
.ChartType = xlColumnClustered
.SeriesCollection.NewSeries
With .SeriesCollection(1)
'.Name = "=" & ActiveSheet.Name & "!" & _
'Cells(1, j).Address
.XValues = "=" & ActiveSheet.Name & "!" & _
Range(Cells(2, 1), Cells(i, 1)).Address
.Values = "=" & ActiveSheet.Name & "!" & _
Range(Cells(2, j), Cells(i, j)).Address
End With
End With
Next j
而且我需要在另一个工作表中添加新图表,所以我尝试使用相同的代码:
Sheets("sheet2").Select
Dim i As Integer 'rows
Dim j As Integer 'columns
i = Cells(Rows.Count, 1).End(xlUp).Row
For j = 2 To 5
With ActiveSheet.Shapes.AddChart.Chart
.Parent.Name = "Chart_" & (j - 1)
.ChartType = xlColumnClustered
.SeriesCollection.NewSeries
With .SeriesCollection(1)
'.Name = "=" & ActiveSheet.Name & "!" & _
'Cells(1, j).Address
.XValues = "=" & ActiveSheet.Name & "!" & _
Range(Cells(2, 1), Cells(i, 1)).Address
.Values = "=" & ActiveSheet.Name & "!" & _
Range(Cells(2, j), Cells(i, j)).Address
End With
End With
Next j
是同一型号的表,但我需要把它放在另一张表中,这是我的表:
我做错了什么? 谢谢
【问题讨论】:
-
小心使用
.Select作为工作表,然后使用Activesheet。选择工作表并不一定会使其处于活动状态。请改用Activate。作为替代方案,您根本不应该选择或激活工作表。为工作表创建一个变量对象并分配它:Dim ws As Worksheet; Set ws = ThisWorkbook.Sheets("kips")。然后使用对ws的引用,您就可以保证您引用的是哪个工作表,这总是更安全。 -
但是我如何引用 ws?因为我需要用这个表做 4 个图表,所以,我如何制作一个可以选择在 4 个图表中分隔这个 ws 的代码?