通过双击事件复制/粘贴

时间:2014-02-05 09:15:31

标签: excel excel-vba double-click vba

我有一个双击事件,我希望它能保存某个范围的副本。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("A3:A25, A29:A34, A36:A40, F3:F14, F18:F21, F25:F26, F3:F32, F36:F37, K3:K22, K26:K40, P3:P22")) Is Nothing Then
        Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Copy
    End If
End Sub

当我点击其中一个范围时,我可以看到复制高亮显示快速消失并消失。我如何把它拿到剪贴板上?理想情况下,我希望能够在下一次双击事件中粘贴此范围。

1 个答案:

答案 0 :(得分:3)

试试这个:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, _
Range("A3:A25, A29:A34, A36:A40, F3:F14, F18:F21, F25:F26, F3:F32, F36:F37, K3:K22, K26:K40, P3:P22")) Is Nothing Then
    Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Select
End If
Selection.Copy
End Sub

我测试了它并且它有效。 :d

编辑1:这也有效

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = False
If Not Intersect(Target, _
Range("A3:A25, A29:A34, A36:A40, F3:F14, F18:F21, F25:F26, F3:F32, F36:F37, K3:K22, K26:K40, P3:P22")) Is Nothing Then
    Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 3)).Copy
Else
    Application.CutCopyMode = False
End If
Cancel = True
End Sub