(VBA)如何将列单元格分配给对应的组,并将组单元格粘贴到组表单?

试图创build一个VBA脚本 –

链接到工作簿在这里

我在列B中有一个关键字列表,每个关键字对应于列A中的一个

输入数据

如何使用VBA代码将每个关键字列表分组到相应的组工作表中?

团体“不锈钢”和“玻璃饮水机”的例子:

集团“不锈钢”不锈钢

集团“玻璃饮水机”玻璃饮水机

任何帮助将不胜感激!


编辑:
试图创build一个基于@BruceWayne公式的macros。

获取线路错误:

Selection.FormulaArray = _ "=IFERROR(INDEX('Script to organize Group'!R2C[1]:R469C[1],SMALL(IF('Script to organize Group'!R2C:R469C=MID(CELL(""filename"",R[-1]C),FIND(""]"",CELL(""filename"",R[-1]C))+1,255),ROW('Script to organize Group'!R2C:R469C)-ROW('Script to organize Group'!R2C)+1),ROWS('Script to organize Group'!R2C[1]:RC[1]))),"""")" 

注意:还尝试使用Range("A2").FormulaArray = _而不是Selection.FormulaArray = _ ,但仍然得到相同的错误。

我在VBA代码的尝试,使用下面的公式:

 Sub CategorizeKeywordsIntoGroups() Dim ws As Worksheet Set ws = ActiveWorkbook.ActiveSheet 'Set the exact sheet, not just the one that is active _ 'and then you will go through all the sheets Range("A2").FormulaArray = _ "=IFERROR(INDEX('Script to organize Group'!R2C[1]:R469C[1],SMALL(IF('Script to organize Group'!R2C:R469C=MID(CELL(""filename"",R[-1]C),FIND(""]"",CELL(""filename"",R[-1]C))+1,255),ROW('Script to organize Group'!R2C:R469C)-ROW('Script to organize Group'!R2C)+1),ROWS('Script to organize Group'!R2C[1]:RC[1]))),"""")" Selection.AutoFill Destination:=Range("A2:A9999"), Type:=xlFillDefault Range("A2:A29").Select End Sub 

在以组命名的每个工作表中,将其置于A2:

=IFERROR(INDEX(Sheet1!B$2:B$7,SMALL(IF(Sheet1!A$2:A$7=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),ROW(Sheet1!A$2:A$7)-ROW(Sheet1!A$2)+1),ROWS(Sheet1!B$2:B2))),"")

这假定你有文件保存在某个地方。 input这个数组(用CTRL + SHIFT + ENTER )并向下拖动。 你将不得不调整当然的范围。 但是,当您添加组/关键字时,列表将自动更新。 另外,要返回说货币或平均。 一个月,只要将第一个指数范围从B$2:B$7改为任何新的范围,即C$2:C$7

编辑:使用所有数据将“Sheet1”更改为主表: =IFERROR(INDEX('Script to organize Group'!B$2:B$469,SMALL(IF('Script to organize Group'!A$2:A$469=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255),ROW('Script to organize Group'!A$2:A$469)-ROW('Script to organize Group'!A$2)+1),ROWS('Script to organize Group'!B$2:B2))),"") ,再按ENTER键不放,按住CTRL + SHIFT,然后input。

在这里输入图像说明