添加值时清除剩余的单元格
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
在 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