为什么此代码会影响C列中的单元格?

时间:2013-02-19 16:01:19

标签: excel-vba range target vba excel

此代码在C列中放置一个复选标记或X,并将字体更改为Marlett:

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

    If Not Intersect(Target, Range("B5:B25", "D5:D25")) Is Nothing Then

     Cancel = True 'Prevent going into Edit Mode

        Target.Font.Name = "Marlett"

        If Target = vbNullString Then

           Target = "a"

        Else

           Target = vbNullString

        End If

    End If


End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("B5:B25", "D5:D25")) Is Nothing Then

     Cancel = True 'Prevent going into Edit Mode

        Target.Font.Name = "Marlett"

        If Target = vbNullString Then

           Target = "r"

        Else

           Target = vbNullString

        End If

    End If

End Sub

1 个答案:

答案 0 :(得分:2)

如果您在立即窗口中输入此内容(请参见屏幕截图)

?Range("B5:B25", "D5:D25").Address

然后你会看到地址是$B$5:$D$25因此它就是这样做的。如果您不希望包含C,请替换

Range("B5:B25", "D5:D25")

Range("B5:B25,D5:D25")

enter image description here