2016-10-13 15 views
0

入力をテキストボックスにコピーし、これを範囲として使用する変数に変換する必要があります。以下のコードでは、エラー91のオブジェクト変数またはWithブロック変数が設定されていません。これを行うより良い方法があれば、教えてください。Textbox.value as variable

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

テキストボックスには何が入力されますか? – Kyle

答えて

0

コードが面白いです。まず、RangeboxA.valueを手に入れています。

成功しRange()以内にこれを使用するには、それは次のようになります。

A1:B9 

が、文字列のこの種は、常にIsNumeric()を失敗するのでRangeAはSetを取得したことがないとSelectは常に失敗します。 RangeboxA.valueのような値がある場合

は今:

17 

を、その後Isnumeric()はtrueになりますが、その後:

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

は失敗します。

+0

ご協力いただきありがとうございます。 isNull()とisNull()が動作していなければisNumeric()を変更しました。 – Ygor

+0

@Ygorあなたは大歓迎です。 –