如何单击“工作表 2”中 A5:A10 中的单元格,并将单击的单元格值输入到“工作表 1”中的单元格 C3 中

如何单击“工作表 2”中 A5:A10 中的单元格,并将单击的单元格值输入到“工作表 1”中的单元格 C3 中

我有一本包含两张表的工作簿,分别标有Sheet 1Sheet 2

Sheet 2有一个范围A5:A10。我希望能够单击该范围内的单元格并将其内容输入到中的单元格中Sheet 1

所以范围A5:A10

1001  

1002 

1003

1004

1005

1006

我想单击单元格 A6(在 中Sheet 2),并将 A6 的值 1002 放入 中Sheet 1 C3。这样C3现在就有 1002。

到目前为止,我不得不手动输入值Sheet 1,但我不仅想在文档内进行超链接,还想改变 C3 的值。

答案1

在 的工作表代码区域中输入以下事件宏Sheet2

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim A As Range
    Set A = Range("A5:A10")

    If Intersect(Target, A) Is Nothing Then Exit Sub

    Cancel = True
    Application.EnableEvents = False
        Target.Copy Sheets("Sheet1").Range("C3")
    Application.EnableEvents = True
End Sub

请注意,代码使用工作表1而不是第 1 页(如果您正在使用,请更改此项Sheet 1

因为它是工作表代码,所以很容易安装并自动使用:

  1. 右键单击 Excel 窗口底部附近的选项卡名称
  2. 选择查看代码-这将打开一个 VBE 窗口
  3. 粘贴内容并关闭 VBE 窗口

如果您有任何疑虑,请首先在试用工作表上尝试一下。

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

消除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能使其工作!

编辑#1:

要允许宏将数据存放在受保护的工作表上:

  1. 取消工作表保护
  2. 解锁特定单元格,例如C3
  3. 重新保护工作表

这将允许宏(和用户)在工作表上输入数据并保护公式等。

编辑#2:

为了避免复制格式,请改用以下格式:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim A As Range
    Set A = Range("A5:A10")

    If Intersect(Target, A) Is Nothing Then Exit Sub

    Cancel = True
    Application.EnableEvents = False
        Target.Copy
        Sheets("Sheet1").Range("C3").PasteSpecial Paste:=xlPasteValues
    Application.EnableEvents = True
End Sub

要在发生错误后“启动”例程,请将此宏放入标准模块并运行它:

Sub qwerty()
    Application.EnableEvents = True
End Sub

相关内容