在 VBA 中将范围转换为字符串

0 excel vba

我需要帮助将范围转换为可用的字符串。我不是 100% 确定我需要什么,因为我几乎没有 VBA 或 VB.NET 经验,但最终我想采用一堆像B32to一样的单元格,并在- (作为 y 值)和(作为 x值)J52上执行 linest 函数价值)。CJB

我想如果我能学会弹出一个字符串,上面写着“ "Bxx:Jyy"Then”,我就能告诉它“do” linest(Cxx:Cyy, Bxx:Byy, true, false)

有没有更简单的方法来做到这一点?不管怎样,我现在所拥有的只是一些从用户那里获取范围的代码(刚刚从谷歌获得)。如果有人可以帮我获取如上所述的字符串,我想我可以处理其余的事情。

Dim oRangeSelected As Range
Set oRangeSelected = Application.InputBox("Please select a range of cells!", _
                     "SelectARAnge Demo", Selection.Address, , , , , 8)
Run Code Online (Sandbox Code Playgroud)

bre*_*tdj 5

在这种情况下,您需要用户选择的范围(而不是预先存在的选择),因此

MsgBox oRangeSelected.Address
Run Code Online (Sandbox Code Playgroud)

[更新] 实际上,更仔细地阅读您的问题,您可以按原样使用 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
Run Code Online (Sandbox Code Playgroud)