Excel VBA:如何使用新数据在Excel中格式化图表?

我正在试图制作一个macros在Excel 2003中格式化数据更改的图表。 基本上,我总是有20个X值和Y值; 然而,价值是具体数据(我正在股票价格图表,将根据我正在分析的股票而改变)。 我试图让我的Y轴穿过X轴的单元格B8的值; 有无论如何用macros来做到这一点? 因为我无法将轴交叉到单元格的位置。 另外,我想将轴的最小值改为单元格B8。 此外,我希望macros调整购物车,以自动查找逻辑,这取决于我放在那里的数据(即逻辑间隔)。

这里的图表types是一个散点图,其中的描述是:“由没有标记的线条连接的数据点分散”。 非常感谢你。

我不认为有可能将截取值dynamic链接到单元格 – 这只是基于select截取值的UI需要显式值的事实,而不是让您select单元格。

但是,在VBA中,一旦你从单元中读取了所需的值,就这样做

ActiveSheet.ChartObjects("Chart 1").Axes(xlValue).CrossesAt = value 

(与您的图表名称)

这大概是你所需要的(没有时间在这里testing,并得到确切的细节):

 ActiveChart.Axes(xlValue).CrossesAt = Range("B8").value 

您可能还必须设置

 ActiveChart.Axes(xlCategory).Crosses = xlAxisCrossesCustom 

不pipe是使用价值还是使用类别,都要玩一下。

“根据我放入的数据(即逻辑间隔)自动调整购物车以查看逻辑。”

那个很有趣。 这是一个VBA函数,它可以计算滴答之间相当的时间间隔。

 Public Function prettyVal( _ xMin As Double, _ xMax As Double, _ minBins As Integer) _ As Double '' returns an aesthetic interval size to _ use for a plot axis or histogram bin. _ marc@smpro.ca 2010-09-01 Dim pretties pretties = Array(1, 2, 5, 10) Dim maxBin As Double ''maximum size of bin Dim xScale As Double ''scale factor With WorksheetFunction maxBin = (xMax - xMin) / minBins xScale = 10 ^ Int(.Log10(maxBin)) prettyVal = xScale * .Lookup(maxBin / xScale, pretties) End With End Function 

你会想在工作表中使用它。 使用最小值和最大值的地板和天花板,具有非常重要的意义。 这使他们也漂亮。 在工作表中是这样的:

 minimum plot value minVal 120 maximum plot value maxVal 980 minimum num of bins minBins 10 pretty bin size binsize 50 =prettyVal(minVal,maxVal,minBins) low axis value minEdge 100 =FLOOR(minVal,binsize) high axis value maxEdge 1000 =CEILING(maxVal,binsize) number of bins numBins 18 =(maxEdge-minEdge)/binsize 

请享用。