[英]Creating Line Chart for each Row using VBA excel (Dynamic Row,Column)
I would appreciate if someone can help me with this code 如果有人能帮我解决这个问题,我将不胜感激
-- I have dynamic rows and columns, the code finds number of rows and columns using LastRow, and LastColumn. - 我有动态行和列,代码使用LastRow和LastColumn查找行数和列数。 I have to plot line chart for each row (keeping the coulmn fixed at the number found) and place it in sheet 2. I created a hybrid code with recording and looping (As i am a new to coding). 我必须为每一行绘制折线图(将coulmn固定在找到的数字上)并将其放在表2中。我创建了一个带记录和循环的混合代码(因为我是一个新的编码)。 The excel sheet table i have to plot is given below (and it can be dynamic both in rows and columns. Cell, Counter etc are header, First row is A ,Nbr, etc ). 我必须绘制的excel表格表如下(并且它可以是行和列中的动态.Cell,Counter等是标题,第一行是A,Nbr等)。 Please Help 请帮忙
Cell Counter 0:45 1:00 1:15 1:30 1:45 2:00 2:15 2:30 Cell Counter 0:45 1:00 1:15 1:30 1:45 2:00 2:15 2:30
A Nbr 10 54 45 0 0 0 0 0 A Nbr 10 54 45 0 0 0 0 0
Dim i As Long
Dim LastRow As Long
Dim LastColumn As Long
Dim cht As Chart
LastRow = Range("A65536").End(xlUp).row
LastColumn = Range("A1").End(xlToRight).Column
For i = 2 To LastRow
Dim location As String
Range("$A$i:$LastColumn").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$i:$LastColumn")
With ActiveChart.Parent
.Height = 225 ' resize
.Width = 500 ' resize
ActiveChart.ChartArea.Copy
Sheets("Sheet2").Select
ActiveSheet.Pictures.Paste.Select
Sheets("Sheet1").Select
Application.Run ("DeleteEmbeddedCharts")
End With
Next i
End Sub
Try below code 试试下面的代码
Sub main()
'variable declaration
Dim i As Long
Dim LastRow As Long
Dim LastColumn As Long
Dim chrt As Chart
'Find the last used row
LastRow = Sheets("Sheet1").Range("A65536").End(xlUp).Row
'Find the last used column
LastColumn = Sheets("Sheet1").Range("A1").End(xlToRight).Column
'Looping from second row till last row which has the data
For i = 2 To LastRow
'Sheet 2 is selected bcoz charts will be inserted here
Sheets("Sheet2").Select
'Adds chart to the sheet
Set chrt = Sheets("Sheet2").Shapes.AddChart.Chart
'sets the chart type
chrt.ChartType = xlLine
'now the line chart is added...setting its data source here
With Sheets("Sheet1")
chrt.SetSourceData Source:=.Range(.Cells(i, 1), .Cells(i, LastColumn))
End With
'Left & top are used to adjust the position of chart on sheet
chrt.ChartArea.Left = 1
chrt.ChartArea.Top = (i - 2) * chrt.ChartArea.Height
Next
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.