我有一个excel工作簿,其中包含多个工作表 . 为了这个问题,工作表被命名为Sheet1,Sheet2,Sheet3等 . 我希望将Sheet1中的A列复制到其余的工作表中,并且当新单元格添加到sheet1中的A列时,它们将自动输入到工作簿中的其他工作表中 . 我宁愿不为此设置“结束范围;即:A100000” . 例如,如果我在Sheet1的单元格A1中输入First,则单词“First”现在也应出现在Sheet2的单元格A1中 . 我使用了以下代码,它似乎不起作用 . 任何帮助将不胜感激 .
Private Sub Worksheet_Change(ByVal Target As Range)
Call UpdateFromSheet1
End Sub
Sub UpdateFromSheet1(ByVal Sh As Object, ByVal Target As Range)
If Sh.CodeName = "Sheet1" Then
If Not Intersect(Target(1, 1), Range("A1:A1000")) Is Nothing Then
Sh.Range("A1:A1000").Copy Sheet2.Range("A1")
End If
End If
End Sub
2 回答
UPDATE
对于看起来干净的 Non-VBA 解决方案,您可以使用其他人提到的公式引用,但是像这样输入它 .
在Sheet2单元格A1 =
If(Sheet1!A1="","",Sheet1!A1)
这样,如果Sheet1有没有数据的行,那么您可以填充整个A列并且不会弹出"0"弹出窗口 .我认为你有一般的想法,但我怀疑你可能没有正确的代码 .
对于 VBA 解决方案:
First ,你不需要从
Worksheet_Change
事件中调用sub(除非你当然想要使用这个sub出于其他原因并将变量传递给它. Second ,如果你将这段代码放在"Sheet1"的VBE中的工作表对象中它会按你的意愿做:这是excel的一个非常基本的用途 . 您可以将单元格设置为彼此相等 . 你决不会需要一个VBA宏 .
如果你把它放在Sheet2和Sheet3上的单元格“A1”中:
然后当您在A1中键入内容时,它将在第2页和第3页上“镜像” . 您可以将其自动填充到第2页和第3页的A列中的所有单元格 .
你熟悉自动填充这个术语吗?
如果您不理解我刚刚说过的任何内容,您只想运行一个宏,然后运行它并开始输入:
祝好运 .