Excel VBA:如何使用新数据在Excel中格式化图表?
我试图制作一个宏,在Excel 2003中设置图表格式,其中数据会发生变化。基本上,我在任何时候都有20个X值和Y值;但是,这些值是特定于数据的(我正在制作股票价格图表,该图表将根据我分析的股票而变化)。我试图使我的Y轴与X轴相交,在单元格B8中的值处;是否有任何方法可以使用宏执行此操作?因为我无法将轴交叉的位置链接到单元格。此外,我还想将轴最小值更改为单元格B8。此外,我希望宏根据我输入的数据(即逻辑间隔),自动调整购物车,使其看起来符合逻辑Excel VBA:如何使用新数据在Excel中格式化图表?,vba,excel,charts,Vba,Excel,Charts,我试图制作一个宏,在Excel 2003中设置图表格式,其中数据会发生变化。基本上,我在任何时候都有20个X值和Y值;但是,这些值是特定于数据的(我正在制作股票价格图表,该图表将根据我分析的股票而变化)。我试图使我的Y轴与X轴相交,在单元格B8中的值处;是否有任何方法可以使用宏执行此操作?因为我无法将轴交叉的位置链接到单元格。此外,我还想将轴最小值更改为单元格B8。此外,我希望宏根据我输入的数据(即逻辑间隔),自动调整购物车,使其看起来符合逻辑 此处的图表类型为散点图,其中描述为:“数据点通过无
此处的图表类型为散点图,其中描述为:“数据点通过无标记线连接的散点图”。非常感谢。这大概就是您所需要的(没有时间在这里测试并获得确切的细节): 您可能还需要设置
ActiveChart.Axes(xlCategory).Crosses = xlAxisCrossesCustom
并在是否使用Value或Category的问题上稍作考虑。这大致就是您所需要的(没有时间在此进行测试并获得确切的细节): 您可能还需要设置
ActiveChart.Axes(xlCategory).Crosses = xlAxisCrossesCustom
我认为不可能将截取值动态链接到单元格,这仅仅是因为选择截取值的UI需要显式值,而不是允许您选择单元格 但是,在VBA中,一旦从单元格中读取了所需的值,请执行以下操作:
ActiveSheet.ChartObjects("Chart 1").Axes(xlValue).CrossesAt = value
(使用图表名称)我认为不可能将截取值动态链接到单元格-这只是基于这样一个事实,即用于选择截取值的UI需要显式值,而不是允许您选择单元格 但是,在VBA中,一旦从单元格中读取了所需的值,请执行以下操作:
ActiveSheet.ChartObjects("Chart 1").Axes(xlValue).CrossesAt = value
(使用图表名称)“根据我输入的数据(即逻辑间隔),自动调整购物车,使其看起来符合逻辑。”
那个很有趣。下面是一个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
享受。“根据我输入的数据(即逻辑间隔),自动调整购物车,使其看起来符合逻辑。”
那个很有趣。下面是一个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
享受