我有一个元数据表,我正在设置一些参数,我从中生成支点。我通过下拉列表选择这些参数。
Here is what my metadata sheet looks like.
我在相应的单元格中以逗号分隔的方式保存下拉列表的值。为此,我在该表上有一个宏:
Private Sub Worksheet_Change(ByVal Target As Range)
'Set automatic formula calculation ON
Application.Calculation = xlAutomatic
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Address = "$C$5" Or Target.Address = "$C$6" Or Target.Address = "$C$7" Or Target.Address = "$D$5" Or Target.Address = "$D$6" Or Target.Address = "$D$7" Or Target.Address = "$E$5" Or Target.Address = "$E$6" Or Target.Address = "$E$7" Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & "," & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub
我的问题:
1)有没有一种定义范围的方法,而不是在宏的第10行定义单个单元格?基本上我使用"或"
将C5:E7范围内的所有单元格定义为单个单元格2)我无法删除单个逗号分隔值,因为这样做会给我以下错误。A user has restricted values that can be entered into the cell 我需要整个单元格,然后再次选择值。有没有办法可以只删除单个值?