gpt4 book ai didi

vba - 将一系列趋势线方程获取到形状文本框

转载 作者:行者123 更新时间:2023-12-02 01:57:36 25 4
gpt4 key购买 nike

我正在尝试将趋势线方程从图表中的第一个系列获取到放置在工作表其他位置的形状文本框 - 但是,只有在单步执行代码时才能正确填充文本框逐行 - 在运行时它没有效果:

For Each chtObj In ActiveSheet.ChartObjects

Set cht = chtObj.Chart

For Each srs In chtObj.Chart.SeriesCollection
srs.Trendlines(1).DisplayEquation = True 'Display the labels to get the value
ThisWorkbook.Worksheets("MyDataSheet").Shapes(slopetextboxes(k)).TextFrame.Characters.Text = srs.Trendlines(1).DataLabel.Text
srs.Trendlines(1).DisplayEquation = False 'Turn it back off
Exit For
Next srs

k = k + 1 ' for the slope textboxes

Next chtObj

请注意,slopetextboxes 是一个包含约 6 个形状文本框名称的数组。

据我所知,没有办法在不停止显示趋势线数据标签的情况下获取它。我尝试先将其存储在字符串中,DoEvents,然后重新打开Application.ScreenUpdating,但都无济于事。我被难住了。

编辑:看来,通过在.DisplayEquation = True之后放置DoEvents,我能够一些 我的形状填充正确,但不是全部。似乎仍然是某种运行时问题。

赏金编辑:我已经通过数据本身的公式来获取斜率,但我仍然不明白为什么我无法获取图表的.DataLabel.Text 在运行时。我可以在单步执行时捕获它,而不是在运行时捕获它。它似乎只是采用上一个系列的斜率并将其放置在形状(或单元格,甚至目的地在哪里)中。放置在不同位置的 DoEvents 会产生不同的结果,因此一定发生了某些事情。

最佳答案

更新后可以更好地理解该错误。这在 excel 2016 中对我有效,对源数据(以及斜率)进行了多次更改

我尝试了 myChart.refresh - 没有成功。我尝试删除然后重新添加整个趋势线,也没有成功。

这适用于除第一种情况之外的所有情况。第一种情况需要击中两次。与 .select 相同

如果您尝试删除趋势线,即使将其文本分配给文本框后,这也行不通

Option Explicit
Sub main()
Dim ws As Worksheet
Dim txtbox As OLEObject
Dim chartObject As chartObject
Dim myChart As chart
Dim myChartSeriesCol As SeriesCollection
Dim myChartSeries As Series
Dim myChartTrendLines As Trendlines
Dim myTrendLine As Trendline

Set ws = Sheets("MyDataSheet")
Set txtbox = ws.OLEObjects("TextBox1")

For Each chartObject In ws.ChartObjects
Set myChart = chartObject.chart
Set myChartSeriesCol = myChart.SeriesCollection
Set myChartSeries = myChartSeriesCol(1)
Set myChartTrendLines = myChartSeries.Trendlines

With myChartTrendLines
If .Count = 0 Then
.Add
End If
End With

Set myTrendLine = myChartTrendLines.Item(1)

With myTrendLine
.DisplayEquation = True
txtbox.Object.Text = .DataLabel.Text
End With
Next chartObject
End Sub

enter image description here

enter image description here

关于vba - 将一系列趋势线方程获取到形状文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51502097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com