2010-07-08 83 views
0

我想要做的所有事情都是弄清楚如何在一个工作表中将单元格更改为另一个工作表单元格中的单元格时,双击该单元格中的单元格。Excel 2003:双击一个单元格以更改另一个工作表中的另一个单元格的内容

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

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



End Sub 

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

我想象它会是这个样子:

Sheet1!CellA1!Value = Target.Value 

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

回答

2

如果您在Project Explorer在VBA编辑器的外观,其实有两个表名。左侧的名称是VBA中的工作表的名称,右侧的名称是用户使用Excel时底部的选项卡上的名称。 (默认情况下,它们都是“Sheet1”,可能会造成混淆。)

我觉得使用名字最简单;它不需要说Worksheet(“无论”)。如果名称没有改变,就使用它。

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

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

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

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

这是我能得到它的工作的唯一办法,我已经有两个工作对我来说刚刚测试它。使用第一种方法不麻烦。

+0

完美!谢谢 – Jeff 2010-07-09 11:27:48

1

尝试

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

或者,让你想改变一个命名范围的单元格,只使用

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

嗯...当我尝试工作表(“Sheet1”)...我得到“子或功能未定义”。当我用第二个代码尝试使用命名范围时,它会引发1004错误:对象'_Worksheet'的方法'范围'失败 – Jeff 2010-07-08 17:40:28

+0

我想指出如果范围(“MyName”)在同一个工作表上,但是当我尝试从不同的人那里做出时会失败 – Jeff 2010-07-08 18:02:58

相关问题