Vba 如何双击一个单元格并从单击另一个单元格复制值?

Vba 如何双击一个单元格并从单击另一个单元格复制值?,vba,excel,Vba,Excel,我认为这很接近,但有些地方不太对劲。我正在尝试双击和ColumnD中的单元格并选择第二个工作表,然后单击第二个工作表中的单元格,然后将值复制/粘贴到我双击的单元格中。问题是,我想这样做几次,所以如果我双击同一个单元格两次,跳转到第二页两次,我希望第一个单元格中的值保持不变。所以,如果我在D3里什么都没有,我双击它,我可以在第二张纸上选择一个单元格。假设它是LQ1;这被复制/粘贴到D3中。然后,我再次单击D3,再次跳转到第二个工作表,并在第二个工作表中选择一个单元格。假设是LQ2。我希望D3有LQ

我认为这很接近,但有些地方不太对劲。我正在尝试双击和ColumnD中的单元格并选择第二个工作表,然后单击第二个工作表中的单元格,然后将值复制/粘贴到我双击的单元格中。问题是,我想这样做几次,所以如果我双击同一个单元格两次,跳转到第二页两次,我希望第一个单元格中的值保持不变。所以,如果我在D3里什么都没有,我双击它,我可以在第二张纸上选择一个单元格。假设它是LQ1;这被复制/粘贴到D3中。然后,我再次单击D3,再次跳转到第二个工作表,并在第二个工作表中选择一个单元格。假设是LQ2。我希望D3有LQ1和LQ2(并且一遍又一遍地重复)

这就是我目前所拥有的。我试过几个主意。问题是,当我单击第二张工作表中的单元格时,我不知道如何让它移回第一张工作表

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

    If Target.Column = 4 Then
        CellSelect = ActiveCell.Value
        CellAddress = ActiveCell.Address
        Sheets("Setup Questions").Select
        If Intersect(Target, Range("B2:B38")) Is Nothing Then
            Cancel = True
            Target.Copy
            Sheets("CP (POS) Tasklist").Range(CellAddress).PasteSpecial Paste:=xlPasteValues
        End If
    End If
End Sub

输入框的想法让我思考。这似乎有效

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

If Target.Column = 4 Then
CellSelect = ActiveCell.Value
CellAddress = ActiveCell.Address

Sheets("Setup Questions").Select
Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

Sheets("CP (POS) Tasklist").Range(CellAddress).Value = CellSelect & Chr(10) & rng
Sheets("CP (POS) Tasklist").Select

End If

Sheets("CP (POS) Tasklist").Select

End Sub

输入框的想法让我思考。这似乎有效

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

If Target.Column = 4 Then
CellSelect = ActiveCell.Value
CellAddress = ActiveCell.Address

Sheets("Setup Questions").Select
Set rng = Application.InputBox("Select a range", "Obtain Range Object", Type:=8)

Sheets("CP (POS) Tasklist").Range(CellAddress).Value = CellSelect & Chr(10) & rng
Sheets("CP (POS) Tasklist").Select

End If

Sheets("CP (POS) Tasklist").Select

End Sub

可以肯定的是,为此您至少需要两个事件处理程序-在“源”工作表中双击前的
和在“目标”工作表中的
SelectionChange
。您还需要协调两张图纸之间的状态。顺便说一下,你应该限定<代码>范围(“B2:B38”)这样你就不会得到1004的错误。我不知道最好的方法是什么来实现你想要做的,但是我几乎肯定的是,它不是在代码< BeforeDoubleClick > /COD>事件中间切换表。(可能使用
输入框
获取要添加到
目标
单元格的所需单元格?我会让其他人来决定。)我相信我确实需要在工作表之间来回切换。我如何知道从第二张表中选择什么值并将其放入第一张表中。我很确定您至少需要两个事件处理程序来执行此操作-双击“源”表中的
之前双击
,以及可能是“目标”表中的
选择更改
。您还需要协调两张图纸之间的状态。顺便说一下,你应该限定<代码>范围(“B2:B38”)这样你就不会得到1004的错误。我不知道最好的方法是什么来实现你想要做的,但是我几乎肯定的是,它不是在代码< BeforeDoubleClick > /COD>事件中间切换表。(可能使用
输入框
获取要添加到
目标
单元格的所需单元格?我会让其他人来决定。)我相信我确实需要在工作表之间来回切换。我如何知道从第二张纸中选择什么值并放入第一张纸中。