Textbox.value作为变量

时间:2016-10-13 13:37:26

标签: excel vba excel-vba

我需要在文本框中复制输入并将其转换为将用作范围的变量。使用下面描述的代码我面临错误91对象变量或未设置块变量。如果您有更好的方法,请告诉我。

Private Sub CommandButton1_Click()
Dim rng As String
Dim rangeA As Range
Dim rangeB As Range
Dim rangeC As Range
Dim rangeD As Range
Dim rangeE As Range

rng = TextBoxA.Value

If IsNumeric(RangeboxA.Value) Then
On Error Resume Next
Set rangeA = Sheets("Plan1").Range(RangeboxA.Value)
On Error GoTo 0
If rangeA Is Nothing Then MsgBox "Range A inválido"

End If

rangeA.Select
Selection.Cut
rangeA.Offset(0, rng).Select

    ActiveSheet.Paste

rng = TextBoxB.Value


 Range("B3:E3").Select
 Selection.Cut
 Range("B3").Offset(0, rng).Select

     ActiveSheet.Paste

rng = TextBoxC.Value


Range("B4:E4").Select
Selection.Cut
Range("B4").Offset(0, rng).Select

    ActiveSheet.Paste

rng = TextBoxD.Value


Range("B5:E5").Select
Selection.Cut
Range("B5").Offset(0, rng).Select

    ActiveSheet.Paste

rng = TextBoxE.Value


Range("B6:E6").Select
Selection.Cut
Range("B6").Offset(0, rng).Select

    ActiveSheet.Paste

Me.Hide
End Sub

1 个答案:

答案 0 :(得分:0)

代码很有趣。首先,我们正在接受RangeboxA.value

要在Range()中成功使用它,它应该类似于:

A1:B9

但是这种字符串始终会失败IsNumeric(),因此RangeA永远不会获得SetSelect将始终失败。

现在RangeboxA.value的值如下:

17

然后Isnumeric()将成立,但随后:

Set rangeA = Sheets("Plan1").Range(RangeboxA.Value)

会失败。