我想将值的输入仅限制在命名范围内。输入的所有超出指定范围的内容均应清除。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("Liczby")) Is Nothing Then
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
不幸的是,Excel还允许您通过执行“复制/粘贴”命令(鼠标,键盘)来填充单元格。我的代码应清除粘贴在指定范围之外的所有内容。它仅应粘贴适合命名范围的部分值,并且不显示粘贴在命名范围之外的值(清除)。
例如,我选择一个在相邻单元格中包含整数1、2、3、4的行,然后尝试将其粘贴到右侧的两列中。由于命名范围只有4列宽度,因此应将值1和2粘贴到命名范围中,并且当它们超出命名范围时不显示值3和4。
答案 0 :(得分:1)
尝试目标中的每个单元格(如果我正确理解了问题)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Application.EnableEvents = False
For Each Cel In Target.Cells
If Intersect(Cel, Range("Liczby")) Is Nothing Then
Cel.ClearContents
End If
Next
Application.EnableEvents = True
End Sub