Исправить проблему времени выполнения VBA - PullRequest
0 голосов
/ 18 июня 2020

Я создал простой макрос для вырезания и вставки данных с одного листа на другой, и время от времени я получаю сообщение об ошибке времени выполнения 1004, ошибка невозможности вставить данные. Он не делает это все время.

Вот мой текущий код:

Sub INSERTVE()
'
' INSERTVE Macro
'
' Keyboard Shortcut: Ctrl+Shift+I
'
 

     Application.Calculation = xlCalculationManual
        Application.ScreenUpdating = False
        Application.DisplayStatusBar = False
        ActiveSheet.DisplayPageBreaks = False
        Application.ScreenUpdating = False
        ActiveWorkbook.Names.Add Name:="newrowa", RefersToR1C1:=Rows(ActiveCell.Row)
        Application.Goto Reference:="newrowa"
        Application.Goto Reference:="NEWTRENDLOGITEM"
        Selection.Copy
        Application.Goto Reference:="newrowa"
        Selection.EntireRow.Insert
        Range("newrowa").Select
        ActiveCell.Rows("1:1").EntireRow.Select
        Application.Goto Reference:="insertsection"
        Selection.Copy
        Application.Goto Reference:="LASTROW"
        Selection.EntireRow.Insert
        ActiveWorkbook.Names.Add Name:="newrowZ", RefersToR1C1:=Rows(ActiveCell.Row)
        Range("newrowZ").Select
        ActiveWorkbook.Names("newrowZ").Delete
        ActiveCell.Rows("1:1").EntireRow.Select
        ActiveWorkbook.Names.Add Name:="newrowZ", RefersToR1C1:=Rows(ActiveCell.Row)
        ActiveCell.Rows("1:1").EntireRow.Select
        ActiveCell.Offset(0, 8).Range("A1").Select
        Sheets("ve-01").Select
        Application.Goto Reference:="newrowa"
        ActiveCell.Rows("1:1").EntireRow.Select
        ActiveCell.Offset(-1, 2).Range("A1").Select
        Selection.Copy
        Application.Goto Reference:="LASTROW"
        ActiveCell.Offset(-13, 2).Range("A1").Select
        **ActiveSheet.Paste link:=True**
        Application.Goto Reference:="newrowa"
        ActiveCell.Offset(-1, 3).Range("A1").Select
        Selection.Copy
        Application.Goto Reference:="LASTROW"
        ActiveCell.Offset(-13, 3).Range("A1").Select
        ActiveSheet.Paste link:=True
        Application.Goto Reference:="LASTROW"
        ActiveCell.Offset(-2, 16).Range("A1").Select
        Selection.Copy
        Application.Goto Reference:="newrowa"
        ActiveCell.Rows("1:1").EntireRow.Select
        ActiveCell.Offset(-1, 13).Range("A1").Select
        ActiveSheet.Paste link:=True
        Application.Goto Reference:="newrowa"
        ActiveCell.Rows("1:1").EntireRow.Select
        ActiveCell.Offset(-1, 1).Range("A1").Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Sheets("VE-01").Select
        Range("newrowa").Select
        ActiveWorkbook.Names("newrowa").Delete
        ActiveWorkbook.Names("newrowz").Delete
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
        Application.DisplayStatusBar = True
        ActiveSheet.DisplayPageBreaks = True
        Application.Calculation = xlCalculationAutomatic
    
End Sub

Есть предложения или идеи о том, почему он делает это только время от времени? Есть какие-нибудь советы для новичка ie, как это исправить? Код выдает ошибку, когда попадает в ActiveSheet.Paste link: = True

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...