|
楼主 |
发表于 2022-7-18 14:55
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
现在找到一个多选的代码,但我原sheet下已经有一个Worksheet_Change,再加一个会导致第二个报错,有没有办法把两个代码整合到一个里
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim rngDV As Range
- Dim oldVal As String
- Dim newVal As String
- If Target.Count > 1 Then GoTo exitHandler
- On Error Resume Next
- Set rngDV = Cells.SpecialCells(xlCellTypeAllValidation)
- On Error GoTo exitHandler
- If rngDV Is Nothing Then GoTo exitHandler
- If Intersect(Target, rngDV) Is Nothing Then
- 'do nothing
- Else
- Application.EnableEvents = False
- newVal = Target.Value
- Application.Undo
- oldVal = Target.Value
- Target.Value = newVal
- If Target.Column = 7 Then '????涨??????е???????Ч?????????A?????1?У????????????3????C?У?7????G??
- If oldVal = "" Then
- 'do nothing
- Else
- If newVal = "" Then
- 'do nothing
- Else
- If InStr(1, oldVal, newVal) <> 0 Then '????????????
- If InStr(1, oldVal, newVal) + Len(newVal) - 1 = Len(oldVal) Then '????????????
- Target.Value = Left(oldVal, Len(oldVal) - Len(newVal) - 1)
- Else
- Target.Value = Replace(oldVal, newVal & ",", "") '??????????????????????????
- End If
- Else '?????????????????????
- Target.Value = oldVal & "," & newVal
- ' NOTE: you can use a line break,
- ' instead of a comma
- ' Target.Value = oldVal _
- ' & Chr(10) & newVal
- End If
- End If
- End If
- End If
- End If
- exitHandler:
- Application.EnableEvents = True
- End Sub
复制代码 |
|