双击单元格后,将单元格值复制到同一行上的另一个单元格

时间:2014-01-06 11:56:42

标签: excel vba excel-vba

这个VBA代码完成了我的需要但只在一行:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("C1:H1")) Is Nothing Then
    Cancel = True

    If Application.CountIf(Sheets("Sheet2").Range("B:B"), Target.Value) = 0 Then
        Range("B1").Value = Target.Value
    End If
End If
End Sub

我的Excel工作表上有:

A    B   C    D    E   F   G   H
MAN     NN   NNP  JJ  POS
CAN     MOD  NN   VV   JJ  RB  NON
...     ...

最多300,000个数据。

我希望当我双击C:H范围内的任何单元格时,其值将被复制到B.上面的代码只处理一行。如果我将C1:H1更改为C2:H2并将B1更改为B2,它将处理第二行。

如何让它适用于所有行?

1 个答案:

答案 0 :(得分:4)

我认为以下更改将起作用(未在iPhone上测试):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Not Intersect(Target, Range("C:H")) Is Nothing Then
        Cancel = True

        If Application.CountIf(Sheets("Sheet2").Range("B:B"), Target.Value) = 0 Then
            Cells(Target.Row, 2).Value = Target.Value
        End If
    End If

End Sub