如何在VBA excel中设置散乱图表的X轴?

时间:2018-06-14 07:25:39

标签: excel excel-vba vba

这是我的问题:

我收到了这段代码:

'Draw a chart
Dim rng As range
Dim cht As ChartObject

'Your data range for the chart
Set rng = ActiveSheet.range("$G$2:$G$" & row_Position & ",$Z$2:$AC$" & row_Position)

'Create a chart
Set cht = ActiveSheet.ChartObjects.Add( _
    Left:=ActiveCell.Left, _
    Width:=775, _
    Top:=275, _
    Height:=250)

cht.Activate

'Populate chart with data
ActiveChart.SetSourceData Source:=rng

'Add gridlines
ActiveChart.Axes(xlCategory).HasMajorGridlines = True

'Determine the chart type
ActiveChart.ChartType = xlXYScatterLines

所以,代码给我一个看起来像这样的图表:

cht1

所以,请允许我解释一下这句话:

Set rng = ActiveSheet.range("$G$2:$G$" & row_Position & ",$Z$2:$AC$" & row_Position)

G2到G + row_Position,代表按钮点击的日期和时间(按钮点击我在表格中添加新行)

Z2到AC + row_Position,表示我希望在图表中显示的4列。

如您所见,在上图中,它有效。

我的问题:

我现在有一个新列,它是F2到F + row_Position,它们是行的索引,所以数字从1到row_Position。

事实上,我的图表是一个散点图,它不是等距的,为此,我想用F列替换G(日期和时间)列...但是以下是由请看一下:

代码更改为:

Set rng = ActiveSheet.range("$F$2:$F$" & row_Position & ",$Z$2:$AC$" & row_Position)

现在看起来像这样:

有2行: cht2

有3行: cht3

依此类推,直到达到6行:

cht4

所以,只是从G到F的变化导致了这个错误......

我只是想用行号替换日期,以生成一个打开等距特征的散点图,因为我无法用日期(不知道今天怎么做)

我希望你能帮助我。

提前致谢。

@ edit1:数据是这样的:

enter image description here

这是图表:

enter image description here

这是索引行的图表:

enter image description here

所以最后,只有数字......没什么特别的......

1 个答案:

答案 0 :(得分:0)

如果您只是想保持这些日期等距,请不要将它们作为日期输入,而是作为文本输入。所以,例如。如果您的时间戳为14.6.2018 9:44:11,请在开头添加撇号'14.6.2018 9:44:11。因此Excel将其识别为文本(这使它们等距)。

或者,您可以添加辅助列,以使用公式将时间戳转换为文本。然后使用辅助列(文本)作为x轴。

公式可能与您的本地化不同,但类似于......

=TEXT(F:F, "DD.MM.YYYY hh:mm:ss")