我需要在文本框中复制输入并将其转换为将用作范围的变量。使用下面描述的代码我面临错误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
答案 0 :(得分:0)
代码很有趣。首先,我们正在接受RangeboxA.value
。
要在Range()
中成功使用它,它应该类似于:
A1:B9
但是这种字符串始终会失败IsNumeric()
,因此RangeA永远不会获得Set
而Select
将始终失败。
现在RangeboxA.value
的值如下:
17
然后Isnumeric()
将成立,但随后:
Set rangeA = Sheets("Plan1").Range(RangeboxA.Value)
会失败。