我所要做的就是弄清楚当一个工作表中的单元格被双击时,如何将另一个工作表中的单元格更改为另一个工作表中的单元格。
在我的第二个工作表中,我设置了以下代码:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
End Sub
我的问题是,更改单元格的代码是什么?
我想它应该是这样的:
Sheet1!CellA1!Value = Target.Value
但很明显,这是不对的。那么什么才是正确的呢?
发布于 2010-07-08 19:36:08
如果您在VBA编辑器的Project Explorer中查看,实际上有两个图纸名称。左侧的名称是工作表在VBA中的显示方式,右侧的名称是用户使用Excel时在底部的选项卡条上给定的名称。(默认情况下,它们都是"Sheet1",这可能会让人混淆。)
我发现使用名字是最简单的;它消除了说Worksheet(“随便”)的需要。如果名称没有更改,只需使用该名称。
Sheet1.Range("A1").Value = Target.Value
编辑:注意,更改左侧名称的唯一方法是确保“属性”窗口可见,单击工作表,然后重命名。我发现最好的做法是立即重命名我所有的工作表,以避免Sheet1、Sheet2、Sheet3。wsTotals、wsCoverForm和wsConfigForm可以使代码更具可读性。
另一个编辑:另一个方法不起作用的原因是因为它必须遵循这个结构:
ActiveWorkbook.Worksheets("Sheet1").Range("A1").Value = Target.Value
这是我能让它工作的唯一方法,我已经用这两种方法对它进行了测试。使用第一种方法就不那么麻烦了。
发布于 2010-07-08 16:34:27
试一试
Worksheet("Sheet1").Range("A1").Value = Target.Value
或者,将要更改的单元格设置为命名范围,然后使用
Range("MyName").Value = Target.Value
https://stackoverflow.com/questions/3205882
复制