Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在VBA excel中设置散点图的X轴?_Excel_Vba - Fatal编程技术网

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

如何在VBA excel中设置散点图的X轴?,excel,vba,Excel,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.ChartObject

我的问题是:

我得到了这个密码:

'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
代码给了我一个图表,如下所示:

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

Set rng = ActiveSheet.range("$G$2:$G$" & row_Position & ",$Z$2:$AC$" & row_Position)
G2到G+行位置,表示单击按钮的日期和时间(单击按钮时,我向表中添加新行)

Z2到AC+行位置,表示我希望在图表中显示的4列

正如你所看到的,在上面的图片中,它起作用了

我的问题是:

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

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

代码更改为:

Set rng = ActiveSheet.range("$F$2:$F$" & row_Position & ",$Z$2:$AC$" & row_Position)
现在看起来是这样的:

有两行:

有3行:

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

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

我只是想用行号替换日期,生成一个启用了等距功能的散点图,因为我不能用日期(不知道今天怎么做)

我希望你能帮助我

提前谢谢




@编辑1:数据如下:

这是它的图表:

这是带有索引行的图表:


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

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

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

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

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

显示数据可能也是个好主意。否则,这将无法复制。请看。@PEH请看一下问题底部的编辑。理想的解决方案是,我可以使X轴上的日期和图表保持等距。。。