将数据输入主工作表,以便将其自动复制到多个命名工作表

时间:2015-02-26 17:42:52

标签: excel vba excel-vba input master

我试图创建一个主工作表,其中A列列出了连续行中的一系列名称(即A列=姓名; Cell 3A为Bob,Cell 4A为Jon等等... 当文本输入名为" Notes,"单元格3B,文本被自动复制到相应的工作表" Bob"在名为" Daily Notes"的列下的每个条目到主表单上的新单元格中并与当前日期。 回到主表单上,输入单元格将重置每个新条目。

1 个答案:

答案 0 :(得分:0)

没有错误检查工作表名称,所以你可能想要添加,但我测试了它,它对我有用。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then 'runs when column B is changed
        Dim name As String
        Dim note As String
        Const DAILY_NOTES_COLUMN As Long = 1
        Dim row As Long
        Dim ws As Worksheet

        name = Target.Offset(0, -1).Value 'looks one cell to the left for the person's name
        note = Target.Value 'get the note to be added
        Set ws = ThisWorkbook.Sheets(name) 'Finds the worksheet of the user.  You will get an error here if it doesn't exist

        row = ws.Cells(ws.Rows.Count, DAILY_NOTES_COLUMN).End(xlUp).row + 1 'find an available row
        ws.Cells(row, DAILY_NOTES_COLUMN).Value = note 'copys the note over to the other worksheet

        Application.EnableEvents = False 'to prevent infinite loop
        Target.Value = "" 'deletes old information
        Application.EnableEvents = True
    End If
End Sub

编辑: 主要工作表

enter image description here

Jon和Bob工作表只包含输入的数据。如果我理解您的请求是正确的,您希望在主工作表中输入数据并立即将其传输到其他工作表。所以你输入数据,复制然后删除它。我在每一行中添加了一些注释,以帮助解释它正在做什么。