我有一个VBA函数,可以从
理想情况下,我希望该函数只引用它所在的那个工作表。由于它应该广泛适用于多个工作表,我想摆脱指定表名的方式。
目前的引用是:
感谢您提供的任何帮助/指导。
完整代码:
ActiveSheet
中的图表输出趋势线方程。我将此函数作为Add-in跨多个工作表使用。为了让函数计算,在我打开工作簿时,我按下CTRL-ALT-F9。这样做后,该函数将为ActiveSheet
计算,因此,如果我在多个工作表中使用该函数,则它会针对活动的任何一个工作表进行计算,而不是针对函数所在的工作表。理想情况下,我希望该函数只引用它所在的那个工作表。由于它应该广泛适用于多个工作表,我想摆脱指定表名的方式。
目前的引用是:
ActiveSheet.ChartObjects(1).Chart
我尝试过Worksheet.ChartObjects(1).Chart
,但无法编译。感谢您提供的任何帮助/指导。
完整代码:
Function TrendLineValue(x) As Double
Dim c As Chart
Dim t As Trendline
Dim e As String
' Get the trend line object for activesheet
Set c = ActiveSheet.ChartObjects(1).Chart
Set t = c.SeriesCollection(1).Trendlines(1)
' Display Equation
t.DisplayRSquared = False
t.DisplayEquation = True
'Number format for accuracy
t.DataLabel.NumberFormat = "0.0000E+00"
' Get equation
e = t.DataLabel.Text
' Create equation for use in cell
e = Replace(e, "y =", "")
e = Replace(e, "x6", "x^6")
e = Replace(e, "x5", "x^5")
e = Replace(e, "x4", "x^4")
e = Replace(e, "x3", "x^3")
e = Replace(e, "x2", "x^2")
e = Replace(e, "x", " * " & x & " ")
' Evaluate
TrendLineValue = Evaluate(e)
End Function
ActiveSheet
。通过循环(For each ws in ThisWorkbook.Worksheets // ws.ChartObjects(1).Chart ...do whatever... // end With
)或者直接使用Worksheets("SheetName").ChartObjects()...
来指定具体的工作表。如果没有 [mcve] 的话,很难更加具体地说明。 - BruceWayne