2

我会尽量准确地解决我的问题,但如果您有任何问题,请提出!

所以基本上我有一个充满日期的列(从第 1 行到第 80 行)和一个充满值的列 B(股票价格,也具有相同的范围)。我用这段代码创建了一个图表:

Sub Chart()
   Range(Cells(1, 1), Cells(80, 1))Select
   Range(Selection, Selection.Offset(0, 1)).Select
   Set rSource=selection
   ActiveChart.SetSourceData Source:=rSource, PlotBy:=xlColumns
   ActiveChart.Location Where:=xlLocationAsNewSheet
end sub

所以这不是图表对象,而是新工作表上的新图表(我这么说是因为我读过的关于这个主题的所有内容都是处理图表对象而不是工作表中的图表)。现在我需要在两个日期之间画一条水平线(一条支撑线)。例如,我需要在 01/01/2013(第 1 行)和 06/25/2013(第 80 行)之间画一条线。这条线必须保持在 y 轴上的同一水平(这就是我们所说的水平线 :))在 2013 年 1 月 1 日的股价水平。

我试过了:

Sub supportline()
Dim CoordA As Variant
CoordA = [a1:b80]
ActiveChart.Shapes.AddLine(CoordA(1, 1), CoordA(1, 2), CoordA(80, 1), CoordA(80, 2)).Select
end sub

但这条线没有画在我想要的地方。我认为存在比例问题,但我无法弄清楚如何获得准确的坐标。

非常感谢您的时间和帮助

编辑(06/11/2013)我已经简化了数据库来说明我的问题:http ://cjoint.com/?CFksHluf0VD我试图在两个日期(01/01/2013 和 16 /01/2013)

如果您下载此文件,您将在 VBA 部分中看到:1/ Test1:我尝试制作一条线来链接图表的 2 个点:如果您启动子程序,您会看到该线已绘制但在错误的比例和错误的位置 2/测试 2:我试图在两点之间画一条水平线,但这根本不起作用

测试 2 是我需要为我的原始项目做的(一条从一个日期到另一个日期的水平线,具有相同的 y 值)

4

1 回答 1

3
ActiveChart.SeriesCollection(1).Select

With Selection.Format.Line

.Visible = msoTrue
//add line style etc

End with

然后使用您的选择语句来选择您想要加入的点。

如果您查看此链接,我认为您会发现它最有用

折线图线条的 VBA 控制的条件格式

http://peltiertech.com/WordPress/conditional-formatting-of-lines-in-an-excel-line-chart-using-vba/

Stack Overflow 上的另一个问题

Excel VBA - 如何为图表系列设置线条样式?

针对您的评论,请参阅此问题的答案。它提供了使用图表的一些很好的解释(在本例中为 vb.net)

图表:在 X 轴上显示更多值描述

还有一个指向 MSDN 的链接

http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.chart.aspx

于 2013-06-10T14:15:57.303 回答