我已经编辑了这篇文章以使其更清晰。
我有代码提示用户通过鼠标左键单击并拖动来选择一个范围,然后将不同工作表上一个单元格的内容复制到该范围内的每个单元格。
我现在只需要将宏绑定到 A 列,这样如果用户在任何其他列中选择任何范围或单元格,则宏将不会运行并给出错误消息,例如“您选择了无效区域,请重试”,然后再次显示选择框,因此用户只能在 A 列中进行选择
Public Sub SelectRange()
Dim aRange As Range
Dim cel As Range
On Error Resume Next
Sheets("Sheet2").Select
Columns("A2:A").Select
Set aRange = Application.InputBox(prompt:="Enter range - Click And Drag To Select", Type:=8)
aRange.Formula = "=Sheet1!A2"
If aRange Is Nothing Then
MsgBox "Operation Cancelled"
Else
aRange.Select
End If
End Sub
你在正确的轨道上。但是您需要决定是否要:
a)用另一张表中的单元格中的值填充所选范围(如您在描述中所说),或者
b)将范围的公式设置为指向另一张表中的单元格(这是您的代码正在执行的操作)
无论如何,您可以使用以下内容。只需适当地注释/取消注释 Else 块中的相应代码即可。
试试这个:
此宏限制用户仅从 A 列复制数据,在选择错误的情况下,提示并允许从 A 列重新选择数据,最后从特定工作表的单个单元格复制数据并粘贴到上一个 A 列中的选定范围床单。