2016-11-11 7 views
0

Ich sah mehrere Lösungen für dieses Problem und versuchte ein paar von ihnen einschließlich Vorwahlzeitraum "." zu den Keyword-Zellen, aber nicht funktionierteMethode 'Bereich' des Objekts '_Global' Fehlgeschlagen Fehler 1004

Im Anschluss an meinem Unter

Sub GJK() 
Dim port_total_periodic_rows As Worksheet 

Dim Target As Worksheet 
Dim i As Integer 
Dim J As Integer 
Dim DTCPYCTR As Integer 
Dim DTPSTCTR As Integer 
Dim FNDPSTCTR As Integer> 
Dim FNDCPYCTR As Integer 

DTCPYCTR = 5 
FNDCPYCTR = 7 
DTPSTCTR = 2 
FNDPSTCTR = 2 

For i = 1 To 138 
    For J = 1 To 113 
    Sheets("port_total_periodic_rows").Cells(DTCPYCTR, 3).Copy 
    Sheets("Target").Cells(DTPSTCTR, 1).PasteSpecial Paste:=xlPasteValues 
    Sheets("port_total_periodic_rows").Range(Cells(FNDCPYCTR, 2), _ 
               Cells(FNDCPYCTR, 4)).Copy 
    Sheets("Target").Range(Cells(FNDPSTCTR, 2), _ 
       Range(FNDPSTCTR,4)).PasteSpecial Paste:=xlPasteValues 

    FNDPSTCTR = FNDPSTCTR + 1 
    FNDCPYCTRT = FNDCPYCTR + 1 
    DTPSTCTR = DTPSTCTR + 1 

    Next 

    DTCPYCTR = DTCPYCTR + 1 
Next 

End Sub 
+1

"Voreinstellung einer Periode" wird nicht magisch funktionieren. Der Zeitraum in VBA (und vielen anderen Sprachen) wird für den Zugriff auf ein Element eines Objekts verwendet. Gehen Sie zurück zu den Lösungen, die Sie "vor einem Punkt" gesehen haben. Sie werden feststellen, dass ein "With" -Block ein paar Zeilen darüber liegt - der Punkt kommt nicht aus heiterem Himmel, er greift wortwörtlich auf das mit 'bezeichnete Objekt zu Mit 'Aussage. –

Antwort

3

standardmäßig Cells() auf die Active bezieht, so wird dieses fehlschlagen, wenn das aktive Blatt nicht „port_total_periodic_rows“ ist:

Sheets("port_total_periodic_rows").Range(Cells(FNDCPYCTR, 2), _ 
              Cells(FNDCPYCTR, 4)).Copy 

Sollte sein:

With Sheets("port_total_periodic_rows") 
    .Range(.Cells(FNDCPYCTR, 2), .Cells(FNDCPYCTR, 4)).Copy 
End with 

Ähnliches gilt auch für die fo Linie.

Auch besser statt Integer zu verwenden, um mögliche Überlaufprobleme zu vermeiden.

+0

ich hin und her zwischen zwei Fehlern Schale, Danke –

+0

diese Antwort gearbeitet und ich fand, dass der Code, den ich für Paste geschrieben hatte, wird nicht mehr Paste Paste akzeptiert: = xlpastevalues ​​nicht intead verwendet funktioniert I Paste xlPasteValues ​​ –

+0

Range-Objekt erfordert atleast zwei Zellen, dh Bereich (Zellen (1,2), Zellen (3,4)). Gibt es ein anderes Objekt, das Funktionen wie Kopieren und Einfügen hat, aber mit nur einer einzigen Zelle als Eingabeparameter OK ist? –

Verwandte Themen