Vba 如何基于单元格数据将一行数据从一张图纸复制到另一张图纸
我正在使用excel作为项目管理工具。现在我有一个很大的表格,上面有一系列下拉菜单,用户可以选择谁负责这个项目,截止日期等等 我希望能够做的是将所有项目数据复制到每一个用户的单独页面上 假设Fred在母版页上创建了一个项目并将其分配给Tom,我希望Tom的工作表能够自动填充项目详细信息,这样他就可以单击主列表底部的选项卡查看所有项目,而不是滚动列表来查找自己的名字 我已经阅读了几个有点类似的问题,还没有找到任何有效的方法 作为参考,名称都在F列,目前用户可以从中选择12个名称来分配项目;因此,母版页选项卡旁边的底部还有12个空白页/工作表选项卡Vba 如何基于单元格数据将一行数据从一张图纸复制到另一张图纸,vba,excel,project-management,Vba,Excel,Project Management,我正在使用excel作为项目管理工具。现在我有一个很大的表格,上面有一系列下拉菜单,用户可以选择谁负责这个项目,截止日期等等 我希望能够做的是将所有项目数据复制到每一个用户的单独页面上 假设Fred在母版页上创建了一个项目并将其分配给Tom,我希望Tom的工作表能够自动填充项目详细信息,这样他就可以单击主列表底部的选项卡查看所有项目,而不是滚动列表来查找自己的名字 我已经阅读了几个有点类似的问题,还没有找到任何有效的方法 作为参考,名称都在F列,目前用户可以从中选择12个名称来分配项目;因此,母
感谢您提供的任何帮助 此宏可能适合您-您需要为筛选器输入正确的列号 它必须放在工作簿代码中,而不是模块中,否则事件处理将无法工作 它将在您每次更改工作表时运行,并将最新信息复制到项目负责人的选项卡中。如果您有其他工作表,您不想对其执行此操作,则必须在代码当前测试Master的同一行中捕获这些工作表的名称 改变需要适应你的具体情况-我相信你能处理它
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim prjLeader As String
Dim wholeRange As Range
prjLeader = Sh.Name
If prjLeader = "Master" Then Exit Sub ' whatever the name of the master sheet is...
On Error GoTo outtahere
Application.EnableEvents = False
Application.ScreenUpdating = False
Sh.UsedRange.Clear ' remove "old" information
ActiveWorkbook.Sheets("Master").Activate
Set wholeRange = ActiveSheet.UsedRange
wholeRange.AutoFilter Field:=6, Criteria1:=prjLeader ' use the field where proj leader name is (F = 6)
wholeRange.Copy ' copy all filtered data
Sh.Activate ' and paste it in project leader's sheet
Range("A1").PasteSpecial
outtahere: ' handle errors - back to sheet, turn events back on
Sh.Activate
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
如果您试图将新数据写入已打开的工作簿,则打开的工作簿可能会出现很多问题。Excel不是做这项工作的工具。Excel不是做这项工作的好工具,如果这就是你一直在做的事情,那就太糟糕了。