我试图创建一个主工作表,其中A列列出了连续行中的一系列名称(即A列=姓名; Cell 3A为Bob,Cell 4A为Jon等等... 当文本输入名为" Notes,"单元格3B,文本被自动复制到相应的工作表" Bob"在名为" Daily Notes"的列下的每个条目到主表单上的新单元格中并与当前日期。 回到主表单上,输入单元格将重置每个新条目。
答案 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
编辑: 主要工作表
Jon和Bob工作表只包含输入的数据。如果我理解您的请求是正确的,您希望在主工作表中输入数据并立即将其传输到其他工作表。所以你输入数据,复制然后删除它。我在每一行中添加了一些注释,以帮助解释它正在做什么。