添加值时清除剩余的单元格

Clear remaining cells when value is added

在 Excel 我有一个 Table 大约有 8 个产品(8 行)。 (table 是一个下拉列表,可以按字母排序) 当在列表底部添加新产品时,table 会自动展开。

table 的设置如下所述:

B 列 = 产品编号

C 列 = 产品名称

D 列 = 特定值

E 列 = 特定值

D 和 E 列通常为空,我希望整个范围 (D1:E8) 中只有 1 个单元格包含任何值。如果添加新值,则需要清除此范围内的所有其他单元格。

这可以通过使用 VBA 宏实现吗? (如果是...那怎么办?)

例如,

D3="x"。当在单元格 E6 中输入字符串 "x" 时,所有其他单元格(包括 D3 需要变为空)。我想通过启动一个 VBA 宏来做到这一点,这样我就可以添加一些额外的操作,这些操作是在 D 或 E 列中使用 "x" 选择其中一个产品后需要发生的。我知道这也可以通过用户表单来完成,但更愿意这样做。

在 sheet 的 Worksheet 模块中,您希望这会影响使用:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("D1:E8")) Is Nothing Then
    If Target.Cells.Count > 1 Then
        MsgBox "Please edit one cell at a time!"
    Else
        Application.EnableEvents = False

        newVal = Target.Value
        Range("D1:E8").ClearContents
        Target.Value = newVal

        Application.EnableEvents = True
    End If
End If

End Sub