2016-12-06 2 views
0

У меня есть макрос в Excel, но он показывает мне ошибку 1004, когда я пытаюсь вставить с помощью Selection.PasteSpecial.vb excel error 1004 Selection.PasteSpecial

Эта ошибка с Office 365, если я пытаюсь использовать тот же макрос в Office 2010, он работает нормально.

отладчик показывает ошибку в этой строке:

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 

Полный код модуля является:

Sub MoveData_Activations() 

MoveData_Activations Macro 

    Dim dayCount As Integer 
    Dim startCell As String 
    Dim curCellRef As String 

    dayCount = 13 
    startCell = "B3" 

    If MsgBox("Are you sure you want to rollover the data for a new date?", vbYesNo, "Confirm rollover") = vbYes Then 
     ActiveSheet.Protect UserInterfaceOnly:=True 
     Range(startCell).Select 
     ActiveCell.Cells(-1, 6).Copy 
     ActiveCell.Cells(-1, 1).Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 

     curCellRef = Range(startCell).Address 
     For i = 1 To dayCount 
      CopyData curCellRef, False, 6, 24, 2 
      curCellRef = ActiveCell.Cells(1, 6).Address 
     Next i 
     CopyData curCellRef, True, 6, 24, 2 
    End If 
End Sub 
+0

Не уверен, но читать [это] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros) в любом случае. – Kyle

ответ

0

Это всегда отнимает много времени копирования содержимого в буфер обмена, может быть, либо используется другой программой, поэтому ошибка или память каким-то образом перепутаны. Для краткости, измените следующие строки:
От:

Range(startCell).Select 
     ActiveCell.Cells(-1, 6).Copy 
     ActiveCell.Cells(-1, 1).Select 
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
      :=False, Transpose:=False 

To:

Range(startCell).Offset(-1, 6).Copy destination:=Range(startCell).Offset(-1, 1) 

Hint: Avoid selection

Смежные вопросы