我需要帮助将范围转换为可用的字符串。我不是100%确定我需要什么,因为我没有VBA或VB.NET的经验,但最终我想把B32
这样的一些单元格带到J52
并执行linest功能C
- J
(作为y值)和B
(作为x值)。
我想如果我能学会弹出一个字母表"Bxx:Jyy"
然后我就能告诉它linest(Cxx:Cyy, Bxx:Byy, true, false)
。
有更简单的方法吗?无论如何,我现在所拥有的只是一些代码来获取用户的范围(刚从Google获得)。如果有人可以帮助我获得如上所述的字符串,我想我可以管理其余部分。
Dim oRangeSelected As Range
Set oRangeSelected = Application.InputBox("Please select a range of cells!", _
"SelectARAnge Demo", Selection.Address, , , , , 8)
答案 0 :(得分:4)
在这种情况下,您需要用户选择的范围(不是预先存在的选择),所以
MsgBox oRangeSelected.Address
[更新] 实际上,更仔细地阅读您的问题,您可以使用LINEST的范围,即此子获取X和Y的用户范围,然后提供LINEST。结果存储在一个数组MyArr中,该数组可以返回给用户。
Sub Sample()
Dim oRangeSelected1 As Range
Dim oRangeSelected2 As Range
Dim myArr()
Set oRangeSelected1 = Application.InputBox("Please select a X range of cells!", "Select X Demo", Selection.Address, Type:=8)
Set oRangeSelected2 = Application.InputBox("Please select a Y range of cells!", "Select Y Demo", , Type:=8)
If oRangeSelected1.Columns.Count + oRangeSelected2.Columns.Count > 2 Then
MsgBox "Please select a single column range only"
Exit Sub
End If
If oRangeSelected1.Cells.Count <> oRangeSelected2.Cells.Count Then
MsgBox "Ranges are of different length"
Exit Sub
End If
myArr = Application.WorksheetFunction.LinEst(oRangeSelected1, oRangeSelected2)
MsgBox "slope is " & Format(myArr(1), "0.00") & " & intercept is " & Format(myArr(2), "0.00")
End Sub
答案 1 :(得分:3)
如果您使用Selected.Address
将您的范围显示为字符串。