Supportnet / Forum / Tabellenkalkulation
Index außerhalb gültigem Bereiches, Warum????
Frage
Hallo Leute,
ich hab hier grad ein mega Problem.
Folgenden Code habe ich eingegeben:
################################################################
Private Sub cmd_import_Click()
Dim a, b As Integer
If Dir(ThisWorkbook.Path & "\import\import.xls") = "" Then ´ Prüfen ob Datei vorhanden ist
MsgBox "Datei nicht vorhanden!"
Exit Sub
End If
Workbooks.Open Filename:=ThisWorkbook.Path & "\import\import.xls" ´ import.xls öffnen
Workbooks("import.xls").Activate
a = 2
Do While Workbooks("import.xls").Worksheets("Tabelle1").Cells(a, 1) <> "" ´ Durchlauf solange die Zelle nicht leer ist
If Workbooks("import.xls").Worksheets("Tabelle1").Cells(a, 1) = "" Then ´ Wenn die Zelle leer ist dann mache bei Weiter weiter
GoTo Weiter
Else
a = a + 1
End If
Loop
Weiter:
a = a - 1
b = 2
Do While Tabelle1.Cells(b, 1) <> "" ´ Durchlauf solange die Zelle nicht leer ist
If Tabelle1.Cells(b, 1) = "" Then ´ Wenn die Zelle leer ist dann mache bei Import weiter
GoTo Import
Else
b = b + 1
End If
Loop
Import:
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Select
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & b)
´ Workbooks("Vokabelmanager.xls").Activate
´ Workbooks("import.xls").Close savechanges:=True
End Sub
################################################################
Soweit klappt auch alles ganz gut, bis auf den Kopiervorgang:
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & a).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & b)
Hier sagt mir Excel immer, Index außerhalb des gültigen Bereiches.
Könnt ihr mir sagen warum dass bitte der Fall ist?
Sowohl die Datei import.xls als auch Vokabelmanager.xls ist geöffnet.
Verstehe das echt nicht ganz... Hoffe auf euren Rat!
Besten Dank!
Mfg
Manuel
Antwort 1 von nighty
hi manuel :)
kontrolliere entweder mit einzelschritten (f8) die variablen oder gib sie in einer zelle aus zwecks kontrolle.desweiteren wären eindeutige var sinnvoll wie auch ein verzicht der selectionen.
gruss nighty
kontrolliere entweder mit einzelschritten (f8) die variablen oder gib sie in einer zelle aus zwecks kontrolle.desweiteren wären eindeutige var sinnvoll wie auch ein verzicht der selectionen.
gruss nighty
Antwort 2 von Event
Hallo
Versuch mal Dim a, b as double sonst ist bei 32767 zeilen Ende der Fahnenstange.
Gruß
Zitat:
Dim a, b As Integer
Dim a, b As Integer
Versuch mal Dim a, b as double sonst ist bei 32767 zeilen Ende der Fahnenstange.
Gruß
Antwort 3 von Event
..nach genauerer Betrachung:
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & Cstr(a)).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & Cstr(b))
Workbooks("import.xls").Worksheets("Tabelle1").Range("A2:G" & Cstr(a)).Copy Destination:=Workbooks("Vokabelmanager.xls").Worksheets("Tabelle1").Range("A" & Cstr(b))

