ActiveSheet.Paste Link:=True "LZf 1004 - Die Paste Methode konnte nicht ausgeführt werden"

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Mono.

    ActiveSheet.Paste Link:=True "LZf 1004 - Die Paste Methode konnte nicht ausgeführt werden"

    Hallo Forum-Gemeinde,
    ich habe an einer Stelle in einem VB-Makro ein Problem. Eigentlich läuft das "Programm" problemlos, da es aber in einer Citrix Umgebung eingesetzt wird bekomme ich an der folgenden Stelle immer wieder sporadisch einen Laufzeitfehler. Führe ich die Funktion auf einem lokalen Rechner aus, tritt der Fehler nicht auf. Die Frage ist daher wie man folgenden Code vielleicht etwas optimaler gestallten könnte. Zum Fehler kommt es in der Zeile "ActiveSheet.Paste Link:=True"

    Visual Basic-Quellcode

    1. For x = 1 To Zeilen - 1
    2. If Range("D1").Offset(x, 0).Value = XJBNR Then
    3. Windows("wbghelp.dat").Activate
    4. Sheets(sheetPrefix & "einz").Select
    5. Range("A1").Value = x
    6. If sheetPrefix = "VB" Then
    7. Range("G6:AB8").Select
    8. Selection.Copy
    9. Range("G19").Offset(gefunden * 4, 0).Select
    10. End If
    11. If sheetPrefix = "SCH" Then
    12. Range("G7:Y7").Select
    13. Selection.Copy
    14. Range("G19").Offset(gefunden * 2, 0).Select
    15. End If
    16. Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    17. ActiveSheet.Paste Link:=True
    18. Selection.Copy
    19. Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    20. gefunden = gefunden + 1
    21. Windows(winPrefix & "_DB.dat").Activate
    22. Sheets(winPrefix).Select
    23. End If
    24. Next x


    Für jeden Hinweis bedanke ich mich bereits im Vorraus.
    Grundsätzlich gilt:

    Alles was mit Select, Copy und Paste in Excel VBA umgesetzt wird ist anfällig für Fehler durch Benutzer oder Programme die die Zwischenablage verändern können.
    Das ist meine Signatur und sie wird wunderbar sein!
    Das ist nix weiter als Range.Formula = "A1" zum Beispiel.

    Bzw geht das noch besser mit relativer Angabe:

    Visual Basic-Quellcode

    1. 'R = Row
    2. 'C = Column
    3. Worksheets("Sheet1").Range("I1:I6").FormulaR1C1 = "=RC[-3]" '3 Spalten nach links entspräche F1:F6
    4. Worksheets("Sheet1").Range("I1:I6").FormulaR1C1 = "=R[+2]C[-1]" ' 2 Zeilen nach unten und 1 nach links, entspräche H2:H7
    Das ist meine Signatur und sie wird wunderbar sein!