【问题标题】:Copy/pasting through double click events通过双击事件复制/粘贴
【发布时间】:2014-02-05 18:11:12
【问题描述】:

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

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

当我单击其中一个范围时,我可以看到副本突出显示迅速出现并消失。我如何将其保存到剪贴板?理想情况下,我也希望能够将此范围粘贴到下一次双击事件中。

【问题讨论】:

    标签: excel double-click vba


    【解决方案1】:

    试试这个:

    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

    Edit1:这也有效

    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
    

    【讨论】:

    • +1) Ideally I'd like to be able to paste this range on the next double click event as well. - 你也可以检查 Application.CutCopyMode 如果它已经是 = xlCopy 然后粘贴值
    • 赢了!多谢你们。我想知道为什么它不能与 Range.Copy 保持一致?
    • 因为当您双击您访问单元格时,会覆盖Range.Copy。所以你需要做的是Cancel双击。看我的编辑:D
    猜你喜欢
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2023-03-28
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多