Set Range problem

03/08/2010 - 15:02 von CL | Report spam
Hallo Zusammen,
mit einem VBA code möchte ich die Tabellen des aktuellen Workbooks in
eine Zelle schreiben. Die Ausgabeadresse soll der User selber
bestimmen können. Leider bekomme ich bei folgendem Code einen Fehler
wenn der user auf "Abbrechen" klickt. Der Curser bleibt bei der SET
anweisung stehen. Fehlermeldung "Objekt erforderlich". Vielleicht kann
mir eine/einer einen Hinweis geben. Danke.

Private Sub CommandButton5_Click()
Dim Rg_SheetList As Range
Dim Inpbx_Txt As String
Inpbx_Txt = "Select destination worksheet and cell:" & Chr(10) &
Chr(10) & "NOTE: UNDO is not possible"
Set Rg_SheetList = Application.InputBox(Inpbx_Txt, "Adding list of
worksheets of current Workbook", , , , , , 8)
If Not Rg_SheetList Is Nothing Then
For i = 0 To UserForm5.ListBox1.ListCount - 1
Rg_SheetList.Offset(i) = UserForm5.ListBox1.List(i, 0)
Next i
End If
End Sub

Gruß
MI
 

Lesen sie die antworten

#1 Stefan Kunze
04/08/2010 - 09:07 | Warnen spam
Hallo MI (??),


"CL" schrieb im Newsbeitrag
news:
Hallo Zusammen,
mit einem VBA code möchte ich die Tabellen des aktuellen Workbooks in
eine Zelle schreiben. Die Ausgabeadresse soll der User selber
bestimmen können. Leider bekomme ich bei folgendem Code einen Fehler
wenn der user auf "Abbrechen" klickt. Der Curser bleibt bei der SET
anweisung stehen. Fehlermeldung "Objekt erforderlich". Vielleicht kann
mir eine/einer einen Hinweis geben. Danke.

Private Sub CommandButton5_Click()
Dim Rg_SheetList As Range
Dim Inpbx_Txt As String
Inpbx_Txt = "Select destination worksheet and cell:" & Chr(10) &
Chr(10) & "NOTE: UNDO is not possible"



On Error Resume Next

Set Rg_SheetList = Application.InputBox(Inpbx_Txt, "Adding list of
worksheets of current Workbook", , , , , , 8)



On Error Goto 0

If Not Rg_SheetList Is Nothing Then
For i = 0 To UserForm5.ListBox1.ListCount - 1
Rg_SheetList.Offset(i) = UserForm5.ListBox1.List(i, 0)
Next i
End If
End Sub




Wenn der User die Eingabe abbricht, wird deinem Range-Objekt
Boolean-Wert (False) zugewiesen. Das führt natürlich zu einem
Laufzeitfehler, da ein Boolean kein Range-Objekt ist ;-)

Setze (wie oben gezeigt) eine 'On Error Resume Next'-Anweisung vor die
Set-Anweisung und ein 'On Error Goto 0' nach die Set-Anweisung.

Stefan

Ähnliche fragen