Excel 2003:双击单元格以更改另一个工作表中的另一个单元格的内容

时间:2010-07-08 16:31:51

标签: excel vba excel-vba excel-2003

我想要做的就是弄清楚当双击另一个工作表时,如何将一个工作表中的单元格更改为另一个工作表中的单元格。

在我的第二个工作表中,我设置了以下代码:

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



End Sub

我的问题是改变细胞的代码是什么?

我想它看起来像这样:

Sheet1!CellA1!Value = Target.Value

但显然这是不对的。什么是对的?

2 个答案:

答案 0 :(得分:2)

如果您在VBA编辑器中查看Project Explorer,实际上有两个工作表名称。左侧的名称是如何在VBA中看到工作表,右侧的名称是用户使用Excel时底部的选项卡条上给出的名称。 (默认情况下,它们都是“Sheet1”,这可能令人困惑。)

我觉得使用名字最容易;它不需要说工作表(“随便”)。如果名称尚未更改,请使用该名称。

Sheet1.Range("A1").Value = Target.Value

编辑:作为注释,更改左侧名称的唯一方法是确保“属性”窗口可见,单击工作表,然后重命名。我发现最好立即重命名我的所有工作表,以避免Sheet1,Sheet2,Sheet3。 wsTotals,wsCoverForm和wsConfigForm可以使代码更具可读性。

另一个编辑:另一个方法不起作用的原因是因为它必须遵循这个结构:

ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = Target.Value

这是我能够让它发挥作用的唯一方法,我已经为我工作了。使用第一种方式不那么麻烦。

答案 1 :(得分:1)

尝试

Worksheet("Sheet1").Range("A1").Value = Target.Value

或者,使您想要更改命名范围的单元格,然后使用

Range("MyName").Value = Target.Value