【发布时间】:2016-09-27 21:56:21
【问题描述】:
我在分子生物学实验室工作,并获得了一份巨大的数据表,其中包含不同条件下基因的表达水平。我想自动化绘制每个基因的不同值的过程。我对VBA一窍不通,只能大致了解“录制宏”功能的输出。
我的数据排列如下(一行):基因名称,条件1中的表达式,条件2...直到条件6。我要做的是:我想选择一行,然后做宏,我想在一个系列中有一个条件为 1-3 和第二个系列中为 4-6 的情节。
当我选择第一行并记录一个宏时,我得到了这个:
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range("Sheet1!$A$4:$G$4")
ActiveChart.FullSeriesCollection(1).Delete
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = "=Sheet1!$B$3"
ActiveChart.FullSeriesCollection(1).Values = "=Sheet1!$B$4:$D$4"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=Sheet1!$E$3"
ActiveChart.FullSeriesCollection(2).Values = "=Sheet1!$E$4:$G$4"
ActiveChart.FullSeriesCollection(2).XValues = "=Sheet1!$B$2:$D$2"
ActiveChart.SetElement (msoElementChartTitleAboveChart)
End Sub
这适用于第一行,但是当我在其他数据行上运行它时,我会得到第一个图,因为值的来源是固定的。我想改变的是
中的固定值ActiveChart.FullSeriesCollection(1).Values = "=Sheet1!$B$4:$D$4"
到我所选范围内的第二个到第四个值。以及
中的值ActiveChart.FullSeriesCollection(2).Values = "=Sheet1!$E$4:$G$4"
到我选择的行中的第五到第七个值。
此外,如果我可以在行的第一个单元格中添加值作为标题,那将非常有帮助,但这不是我主要关心的问题。
【问题讨论】: