|
- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
- If Target.Row >= 3 And Target.Row <= 22 And (Target.Column = 1 Or Target.Column = 7) And Target.Count = 1 Then
- If Cells(Target.Row, Target.Column + 1) <> "" Then
- MsgBox "请不要重复抽取!"
- Exit Sub
- End If
- Dim i, j, d
- Set d = CreateObject("Scripting.Dictionary")
- For i = 3 To 22
- If Range("b" & i) <> "" Then d(Range("b" & i).Value) = ""
- If Range("h" & i) <> "" Then d(Range("h" & i).Value) = ""
- Next i
- i = Target.Row
- j = Target.Column
- 0: k = WorksheetFunction.RandBetween(1, 40)
- If d.exists(k) Then
- GoTo 0
- Else
- Cells(i, j + 1) = k
- End If
- End If
- End Sub
- Sub Clear()
- Range("B3:B22,H3:H22").ClearContents
- End Sub
复制代码
个人觉得这个还是双击激发避免点错 |
|