如何通过双击一个工作表的特定单元格到另一个工作表来复制数据

时间:2009-02-11 13:44:43

标签: excel vba excel-vba

我正在使用Excel中的宏写下我想要做的事情的要求:

  • 我有一个包含4个工作表的工作簿: 我保存数据库的SourceSheet,我想发送数据库的一些产品的TargetSheet,以便进行一些计算,resultsSheet和InfoSheet。
  • 如果用户双击属于的SourceSheet的单元格 列A,例如A8,然后应将单元格A8到F8的数据复制到TargetSheet的单元格C18到H18,并将sourceSheet的单元格J8复制到TargetSheet的单元格B18。如果TargetSheet的单元格B18到H18被占用,那么数据应该被复制到下面的一行。
  • 如果用户双击SourceSheet的单元格中没有 属于A栏,什么都不应该发生。
  • 如果用户双击任何其他工作表,则不会再发生任何事情。

我遇到的问题是上面的粗体字母。我知道我必须确保使用以下内容:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

因此我在SourceSheet中尝试了类似下面的内容(尽管没有成功:()

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Range("ActiveCell:(ActiveCell.Offset(0, 5))").Copy Worksheets("TargetSheet ").Range("C2:G2")
    ActiveCell.Offset(0, 9).Copy Worksheets("TargetSheet ").Range("B18")
End Sub

我是vba的新手所以任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要测试是否在A:A范围(=第1列)中实际双击。


Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    If ActiveCell.Column = 1 Then
        MsgBox "Double click on A:A range."
    End If
End Sub