excel - 对传递给VBA中的函数的两个范围的差进行平方
问题描述
我对输出以及如何从 for 循环中的范围访问每个单元格感到困惑。例如,如果我的范围来自 A1:J1,那么我的第二个范围来自 A2:J2,在我的函数中,如何减去然后平方,然后将该答案放在 Excel 上突出显示的单元格中。我对 VBA 很陌生,我想帮助一个朋友。 这就是我的 excel 文档的样子 这是我被问到的问题
解决方案
在两行范围内平方差
- 这是一种处理方式。
- 它不会作为家庭作业,因为它只使用一个数组作为范围并且它被错误处理“污染”,但它可能会为你必须做的事情提供一些启示。
- 测试它,看看它是否满足您的需求。
Option Explicit
Function getDiffsSquared( _
ByVal rg As Range) _
As Variant
Const ProcName As String = getDiffsSquared
On Error GoTo clearError
If Not rg Is Nothing Then
Dim Data As Variant: Data = rg.Resize(2).Value
Dim Result As Variant: ReDim Result(1 To 1, 1 To UBound(Data, 2))
On Error Resume Next
Dim c As Long
For c = 1 To UBound(Data, 2)
Result(1, c) = (Data(2, c) - Data(1, c)) ^ 2
Next c
On Error GoTo clearError
getDiffsSquared = Result
End If
ProcExit:
Exit Sub
clearError:
Debug.Print "'" & ProcName & "': Unexpected Error!" & vbLf _
& " " & "Run-time error '" & Err.Number & "':" & vbLf _
& " " & Err.Description
Resume ProcExit
End Function
Sub getSquareDiffsTEST()
Const rgAddr As String = "A1:J2"
Dim rg As Range: Set rg = Range(rgAddr)
rg.Resize(1).Offset(2).Value = getDiffsSquared(rg)
End Sub
推荐阅读
- python - python3和python2对于相同代码的不同运行结果
- java - 弹性搜索 - 多个字段作为 Spark 中的映射 ID
- .net - 用于 TLS 支持测试的 .Net 核心 API
- sql - 如何选择仅在某些条件下不同的行?
- php - linux中用于运行php文件的cron作业
- javascript - 如何在 Javascript 中解析 JSONp 响应
- javascript - 无法在 TensorflowJS 上批量训练
- ios - 如何在 Swift3 iOS 中从屏幕底部到一半呈现 UIView?
- c# - 在报表查看器中按日期范围搜索未显示正确的日期范围
- android - 如何保存用户使用意图输入的字符串然后转到其他活动?