我有以下代码,每次在范围内点击它(“C3:C40)”时,在单元格上设置“x”。
问题是它将“x”放在多个单元格中,我只希望在范围内只有一个“x”,只需要点击一个。
我怎么能改变这个代码才能成功呢?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rInt As Range
Dim rCell As Range
Set rInt = Intersect(Target, Range("C3:C40"))
If Not rInt Is Nothing Then
For Each rCell In rInt
rCell.Value = "x"
Next
End If
Set rInt = Nothing
Set rCell = Nothing
End Sub
谢谢
添加了一个循环,用于检查指定范围内的任何值,如果找到则将值设置为清除字符串(无)。然后,您使用的代码将“x”放在所需的单元格上。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rInt As Range
Dim rCell As Range
Dim c As Variant
Set rInt = Intersect(Target, Range("C3:C40"))
If Not rInt Is Nothing Then
For Each c In Range("C3:C40").Cells 'Erase loop
If c.Value <> "" Then
c.Value = ""
End If
Next
For Each rCell In rInt
rCell.Value = "x"
Next
End If
Set rInt = Nothing
Set rCell = Nothing
End Sub
阐述我对原帖的评论:
Dim r as Long, c as Long
r = ActiveCell.Row
c = ActiveCell.Column
Range("C3:C40").ClearContents
Cells(r,c).Value="x"
如果不是x,范围值是否必须为空?
Private Sub Worksheet_SelectionChange(ByVal
Target As Range)
Dim rInt As Range
Set rInt = Intersect(Target, Range("C3:C40"))
If Not rInt Is Nothing Then
rlnt.value=""
ActiveCell.Value = "x"
End If
End Sub