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

时间:2011-09-27 01:51:56

标签: excel excel-vba vba

我需要帮助将范围转换为可用的字符串。我不是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)

2 个答案:

答案 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将您的范围显示为字符串。