2016-10-13 2 views
0

입력란을 텍스트 상자에 복사하고이를 범위로 사용할 변수로 변환해야합니다. 아래에 설명 된 코드를 사용하면 오류 91 Object variable 또는 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을 집어 들고 있습니다.

A1:B9 

하지만 문자열의이 종류는 항상 IsNumeric() 그렇게 RangeA 결코 Set를 얻을 수없는 실패하고 Select 항상 실패합니다

이 성공적으로처럼 보일 것이다, Range() 내에서 이것을 사용합니다.

이제 RangeboxA.value 같은 값이있는 경우 :

17 

Isnumeric()는 사실,하지만 것입니다 :

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

가 실패합니다.

+0

도움 주셔서 감사합니다. isNull()이 아니라면 isNumeric()을 변경하고 현재 작동합니다. – Ygor

+0

@Ygor 매우 환영합니다. –