2016-12-06 12 views
0

Ich habe ein Makro in Excel, aber es zeigt mir Fehler 1004, wenn ich versuche, mit Selection.PasteSpecial einfügen.vb excel Fehler 1004 Selection.PasteSpecial

Dieser Fehler ist mit Office 365, wenn ich das gleiche Makro mit Office 2010 versuche funktioniert es ok.

Der Debugger zeigt einen Fehler in dieser Zeile:

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

Der vollständige Code des Moduls ist:

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

Nicht sicher, aber lesen Sie [diese] (http://stackoverflow.com/questions/10714251/how-to-meiden-using-select-in-excel-vba-Makros). – Kyle

Antwort

0

Es ist immer Zeit verbraucht Inhalt in die Zwischenablage zu kopieren, kann es sein, dass Entweder wird von einem anderen Programm verwendet, daher ist der Fehler oder Speicher irgendwie durcheinander. Für kurze, ändern diese Zeilen:
Von:

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

An:

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

Hint: Avoid selection

Verwandte Themen