excellvba引用计算机用户名,Excel VBA引用本地工作表名称

博客作者遇到一个VBA函数问题,该函数用于从工作表的图表中获取趋势线方程。当打开工作簿并按下CTRL-ALT-F9时,函数会计算ActiveSheet中的图表,而非函数所在的工作表。作者寻求解决方案,希望能使函数根据其所在的特定工作表而不是活动工作表来计算趋势线方程。目前函数使用ActiveSheet.ChartObjects(1).Chart引用,尝试改为Worksheet.ChartObjects(1).Chart时出现编译错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个VBA函数,可从ActiveSheet中的图表输出趋势线方程。不过,我将此功能用作跨多个工作表的加载项。为了获得要计算的函数,当我第一次打开工作簿时,我按了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值