Excel BeforeDoubleClick删除给定行中的多个单元格

时间:2017-06-27 17:59:23

标签: excel vba excel-vba

这看起来很简单,但我有一个heckava时间找到答案。我很感激任何帮助。

在工作表上我有五列数据,分为三组:

A1 B1 C1 D1 E1 ---- J1 K1 L1 M1 N1 ---- O1 P1 Q1 R1 S1

A2 B2 C2 D2 E2 ---- J2 K2 L2 M2 N2 ---- O2 P2 Q2 R2 S2

A3 B3 C3 D3 E3 ---- J3 K3 L3 M3 N3 ---- O3 P3 Q3 R3 S3

依此类推200行。

我想在Excel中执行的操作是双击D,M或R列中的单元格并删除相应的分组,并使该行的该部分向上移动。例如,我双击 D2 ,A2,B2,C2,D2和E2被删除,向上移动A3,B3,C3,D3和E3。所有其他细胞保持不变。

提前,感谢任何建议。

2 个答案:

答案 0 :(得分:3)

将其添加到工作表的代码模块

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case Target.Column
      Case Columns("D").Column, Columns("M").Column, Columns("R").Column
        Target.Offset(, -3).Resize(, 5).Delete Shift:=xlUp
        Cancel = True
    End Select
End Sub

答案 1 :(得分:0)

如果列始终在第3列。在VBA中将此代码粘贴到工作表中

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If (Target.Column = 4 Or Target.Column = 13 Or Target.Column = 18) Then
        Range(Selection.Offset(0, -2), Selection.Offset(0, 1)).Delete Shift:=xlUp
        Cancel = True
    End If
End Sub
相关问题