excel - 如何限制整个列的剪切复制过去选项
问题描述
根据附加的 Excel 表,用户不应该能够剪切“B”列下拉列表的副本和过去。用户应该只能从可用的下拉列表选项中选择数据
您能帮我获取 VBAMacros 代码吗?尝试了多种选择,但没有运气。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Or
Not Application.Intersect(Target, Range("C:C")) Is Nothing Then
If Target.Cells.Count > 1 Then
Application.EnableEvents = False
Application.Undo
解决方案
正如评论中提到的,这是一种解决方法,因为如果用户可以选择单元格,您就不能真正阻止用户复制。
另一种方法是,如果他们选择了多个单元格,则将当前选择更改为范围中的第一个单元格。将此代码放在工作表中的选择更改中:
If Target.Cells.Count > 1 Then Target.Cells(1).Select
这将在您的工作表 VBA 中得到类似的结果:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Target.Cells(1).Select
End Sub
编辑
以上是为了防止在整个工作表上进行范围选择。如果您只想在 B 列中阻止它,请使用以下命令:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target.Worksheet.Columns(2), Target) Is Nothing Then Target.Cells(1).Select
End Sub
这也可以防止跨 B 列进行选择(例如从 A:C)
推荐阅读
- javascript - 如何将缓冲区拆分为块
- visual-studio-code - 在 WSL2 中从命令行打开 VSCode
- bit-manipulation - 位掩码操作不清楚 - 代码在做什么
- c - 编码中的 C 简单错误 - 错误 E0144 - 如何使代码正常工作?
- mysql - MySQL 读与写锁
- java - Eclipse - 代码提案无法正常工作
- python - 简单的反向shell Python 2.7
- c++ - c ++中两个排序数组的并集
- python - 一段时间后触发一个函数 django python
- node.js - SailsJS ReferenceError:运行 WebStorm 节点调试模式时未定义模型