Vba 使用选项将多个excel合并到单个工作表
我在一个excel文件中有两张工作表,第一张是: 表格:个人Vba 使用选项将多个excel合并到单个工作表,vba,excel,Vba,Excel,我在一个excel文件中有两张工作表,第一张是: 表格:个人 Code date start end 2301 12/08/1993 08:02 08:17 4221 12/08/1993 09:04 09:25 2312 12/08/1993 10:02 10:28 1284 19/09/1994 11:02 11:21 2312 19/09/1994 15:57 16:20 1284 23/06/199
Code date start end
2301 12/08/1993 08:02 08:17
4221 12/08/1993 09:04 09:25
2312 12/08/1993 10:02 10:28
1284 19/09/1994 11:02 11:21
2312 19/09/1994 15:57 16:20
1284 23/06/1995 17:12 17:35
2312 22/06/1996 13:14 13:32
4221 22/06/1996 15:53 16:13
4221 05/05/1999 08:06 08:22
2418 05/05/1999 08:10 08:33
2301 05/05/1999 09:12 09:37
2301 05/05/1999 09:28 10:28
2301 05/05/1999 13:28 13:38
是一个公司的人员列表,其中任何人都可以通过徽章[rowcode
]来识别,我希望通过code
将数据合并到一个人的服装单中,例如,对于拥有编号为2301的徽章的人,他有自己的称为B2301的表,因此基于第一张表“person”我希望导入这样一个人的数据,按此人的编号分组:
活页B2301
date Period(min)
12/08/1987 12
.... ...
因此,周期将从start
和end
行计算
我尝试使用这个公式,但它对我不起作用:
=IFERROR(索引(Sheet1!A$2:A$14,小)(如果(Sheet1!A$2:$A$14=INT(右(单元格(“文件名”),A1),LEN(单元格(“文件名”),A1)-查找(“]”,单元格(“文件名”,A1))),行(Sheet1!A$2:A$14)-行(Sheet1!A$2)+1),行(Sheet1!A$2:A2)),“”
有什么想法吗?这需要你做大量的研究。您需要:
这不是一个微不足道的代码量。对这6项进行研究并编写代码。如果您有,请显示它,我们可以为您提供更多指导。要填充日期,请将其放在A2中:
=IFERROR(INDEX(Sheet1!$B$2:$B$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,Sheet1!$B$2:$B$14),ROW()-1),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,Sheet1!$B$2:$B$14),0)),"")
要填充周期,请将其放入B2中:
=IFERROR(TEXT(INDEX(Sheet1!$D$2:$D$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),COUNTIF($A$1:$A2,A2)),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),0))-INDEX(Sheet1!$C$2:$C$14,MATCH(SMALL(IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),COUNTIF($A$1:$A2,A2)),IF(--MID(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),2,999) = Sheet1!$A$2:$A$14,IF(Sheet1!$B$2:$B$14=A2,Sheet1!$C$2:$C$14)),0)),"[m]"),"")
两者都是数组公式,需要使用Ctrl-Shift-Enter键确认。然后将这两行复制到所需的行
这个公式有什么问题?会发生什么?另外,如果您不是在寻找VBA解决方案,我会删除excel VBA标记。如果您正在寻找VBA解决方案,我会遵循PKatona的建议。即使我做了很多修改,它也会给我这个错误
我们发现这个公式有问题,请尝试单击“插入函数”
,可能我输入了一些错误,请您在真实文件中尝试您的示例,以确保它工作正常吗?我确实将它放在了真实文件中,这就是画面。它对我有用。我没有拍照,也没有把数字放进去。上面的图片是我真实的文件。听起来你希望有人为你编写代码,这不是本网站的目的。这里的期望是您已经编写了一些代码,需要进一步的指导。我告诉你,我会让你开始的。我一整天都会查的。你向我展示你的进步,我会帮助你更进一步。1.在Person excel工作簿上,单击“查看”选项卡,然后单击最右侧的“宏”图标。2.键入“ProcessBadges”作为宏名称,然后单击“创建”。完成后请告诉我。我稍后再查。