excel - 在 VBA 中编写索引和 LinEst 公式
问题描述
如何将下一个场景复制到VBA
?
VBA
我的问题是使用脚本编写公式。
我已经做了以下事情:
Sub CALC()
Dim X(1 to 10) as Double
Dim Y(1 to 10) as Double
Dim QUA_A as Double
'--------
For N = 1 to 10
X(N) = Cells(N, 1).Value
Y(N) = Cells(N, 2).Value
Next N
'--------
QUA_A = WorksheetFunction.Index(WorksheetFunction.LinEst(X, Y ^ [1,2]), 1)
End Sub
但是,我在线上遇到语法错误QUA_A = ...
我错过了什么?谢谢。
笔记:
我想我在我的任务中误导了你们。首先,我不打算使用范围。真正的问题涉及更大的数组,如果我写数组(甚至在一张xlVeryHidden
纸上),运行整个过程会花费太长时间。我只是使用这张(图像)来解释这个问题。其次,当我使用命令时
QUA_A = WorksheetFunction.Index(WorksheetFunction.LinEst(X, Y), 1)
没有引发错误,并且值与它的等价物相同
=INDEX(LINEST(A1:A10;B1:B10);1)
所以,对我来说很明显这两个公式都可以很好地处理数组而不是范围。
解决方案
将 X 设为二维数组,并在公式之前执行数学部分:
Sub CALC()
Dim X(1 To 2, 1 To 10) As Double
Dim Y(1 To 10) As Double
Dim QUA_A As Double
'--------
For n = 1 To 10
X(1, n) = Cells(n, 2).Value
X(2, n) = Cells(n, 2).Value ^ 2
Y(n) = Cells(n, 1).Value
Next n
'--------
QUA_A = WorksheetFunction.Index(WorksheetFunction.LinEst(Y, X), 1)
Debug.Print QUA_A
End Sub
推荐阅读
- python - 在执行进程任务中调用 Python 突然停止工作
- php - 加密php项目以防止重复
- android - 在 android 应用程序 RecyclerView 视图中只显示手机的一半
- javascript - 当我 console.log 父母时,为什么 childNodes 在输入元素之前给我文本?
- c# - 在.net中加密字符串并在python中解密
- php - 使用 EVENTS 时从服务器收集权限的问题(服务提供商说不可能开启)。我还有其他可能的选择吗?
- botframework - Microsoft ChatBot 自动滚动停止工作
- c# - 如何使只有经过身份验证的用户才能访问 ASP .NET 项目中的页面
- android - Sqlite - 如果有相同的号码继续获取为单条记录且仅连续记录计数,我如何查询通话记录?
- android - Try catch 没有第二次执行