Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 如何基于单元格数据将一行数据从一张图纸复制到另一张图纸_Vba_Excel_Project Management - Fatal编程技术网

Vba 如何基于单元格数据将一行数据从一张图纸复制到另一张图纸

Vba 如何基于单元格数据将一行数据从一张图纸复制到另一张图纸,vba,excel,project-management,Vba,Excel,Project Management,我正在使用excel作为项目管理工具。现在我有一个很大的表格,上面有一系列下拉菜单,用户可以选择谁负责这个项目,截止日期等等 我希望能够做的是将所有项目数据复制到每一个用户的单独页面上 假设Fred在母版页上创建了一个项目并将其分配给Tom,我希望Tom的工作表能够自动填充项目详细信息,这样他就可以单击主列表底部的选项卡查看所有项目,而不是滚动列表来查找自己的名字 我已经阅读了几个有点类似的问题,还没有找到任何有效的方法 作为参考,名称都在F列,目前用户可以从中选择12个名称来分配项目;因此,母

我正在使用excel作为项目管理工具。现在我有一个很大的表格,上面有一系列下拉菜单,用户可以选择谁负责这个项目,截止日期等等

我希望能够做的是将所有项目数据复制到每一个用户的单独页面上

假设Fred在母版页上创建了一个项目并将其分配给Tom,我希望Tom的工作表能够自动填充项目详细信息,这样他就可以单击主列表底部的选项卡查看所有项目,而不是滚动列表来查找自己的名字

我已经阅读了几个有点类似的问题,还没有找到任何有效的方法

作为参考,名称都在F列,目前用户可以从中选择12个名称来分配项目;因此,母版页选项卡旁边的底部还有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不是做这项工作的好工具,如果这就是你一直在做的事情,那就太糟糕了。