2017-06-23 8 views
1

を失敗しました:私はCTRL + VとしてPasteFormattingを設定し、マクロでシンプルエクセルVBAマクロ:Rangeクラスのエラー1004の方法は、エクセル2013で

Sub PasteFormatting() 
    ActiveCell.PasteSpecial (xlPasteValues) 
End Sub 

私は次のコードでモジュールを作成しました はしかし、私は私のシートのセルを選択し、「Ctrl + V」を行うときに、私はエラーを取得:

Run-time error '1004': PasteSpecial method of Range class failed 

これは私がマクロを使用しないとどこにも持って初めてです私は時間に非常に基本的なものを見つけましたエルプ私。

私がしたいことは、クリップボードに何かをコピーし、Excelに入り、セルを選択し、セルのフォーマットを変更せずに貼り付けるだけです。

答えて

1

Ctrl + Vを使用しても宛先の書式設定を失うことなく貼り付けを行う場合は、Microsoft Excelオブジェクト "ThisWorkbook"の下に次のコードを入れてください(つまり、モジュールの下にはありません)。

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    Dim UndoString As String, srce As Range 
    On Error GoTo err_handler 
    UndoString = Application.CommandBars("Standard").Controls("&Undo").List(1) 
    If Left(UndoString, 5) <> "Paste" And UndoString <> "Auto Fill" Then 
     Exit Sub 
    End If 
    Application.ScreenUpdating = False 
    Application.EnableEvents = False 
    Application.Undo 
    If UndoString = "Auto Fill" Then 
     Set srce = Selection 
     srce.Copy 
     Target.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
     Application.SendKeys "{ESC}" 
     Union(Target, srce).Select 
    Else 
     Target.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
    End If 
    Application.ScreenUpdating = True 
    Application.EnableEvents = True 
    Exit Sub 
err_handler: 
    Application.ScreenUpdating = True 
    Application.EnableEvents = True 
End Sub 

btw、これはインターネットで広く利用されているため、私はこれを信用していません。

+0

何らかの理由で常に動作しません。私がペーストしたいくつかのクリップは、セルに新しい行を作成し、セルは空です。 – zuokuok

+0

外部コンテンツがテキストの折り返しなどの機能で構成されている場合に発生する可能性があります。「F2」を押してから「Ctrl + V」を押してください。 – curious

0

コードは機能します。コードを実行する前にクリップボードに何もコピーされていない場合、このようなエラーが発生します。 Ctrl + Vで最初に何もコピーせずに何かを貼り付けると、同じことが起こります。そうすると、ビープ音が鳴ります。あなたのエラーを処理し、そのような試しにエミュレートする:

Sub PasteFormatting() 
    On Error Resume Next 
    ActiveCell.PasteSpecial (xlPasteValues) 
    If Err.Number <> 0 Then Beep 
    On Error GoTo 0 
End Sub 
関連する問題