|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 hwf0101 于 2025-3-21 20:09 编辑
详细见附件:- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- If Target.Row <> 3 And (Target.Column <> 5 Or Target.Column <> 3) Then Exit Sub
- ' 检查变动的单元格是否为 C3
- If Not Intersect(Target, Range("C3")) Is Nothing Then
- ' 检查 E3 是否为合并单元格
- If Range("E3").MergeCells Then
- ' 清空合并单元格的内容
- Range("E3").MergeArea.ClearContents
- Else
- ' 如果不是合并单元格,直接清空 E3 内容
- Range("E3").ClearContents
- End If
- End If
- Dim Dic, cell As Range
- Dim i As Integer
- On Error Resume Next
- Set Dic = CreateObject("Scripting.Dictionary")
- Select Case Target(1).Column
- Case 5
- For Each cell In ThisWorkbook.Sheets("产品型号").Range("C4").Resize(ThisWorkbook.Sheets("产品型号").UsedRange.Rows.Count - 2, 1)
- If cell = Target(1).Offset(0, -2) Then
- Dic(cell.Offset(0, 1).Text) = ""
- End If
- Next cell
- With Target(1).Validation
- .Delete
- .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=Join(Dic.Keys, ",")
- .InCellDropdown = True
- End With
- End Select
- Dic.RemoveAll
- End Sub
复制代码
|
|