在条件VBA上复制行

我需要一些想法如何复制符合条件的行。

我有这样的数据:

ABCD 1 Country Brand Model Year 2 France Peugeot, Citroen (France) Car 2003 3 Germany VW, Opel, BMW (Germany) Car 2003 ... 

目标是,每个汽车品牌与它的参数将在不同的行/我想要做的是将第2行复制到表的底部,并将第3行复制到表的底部。 另外创build显示品牌的F栏。

结果应该是这样的:

  ABCDF 1 Country Brand Model Year 2 France Peugeot, Citroen (France) Car 2003 Peugeot 3 France Peugeot, Citroen (France) Car 2003 Citroen 4 Germany VW, Opel, BMW (Germany) Car 2003 VW ... 

另外,我在另外一张纸上列出品牌名单。

我应该尝试search一个,还是尝试从单独的表单中匹配那些品牌?

我新vba所以任何想法,build议将不胜感激!

如果列B始终在括号中包含列A中的国家/地区,请考虑在执行拆分之前将其从列中移除。 就像是:

 Dim originalWs as Excel.Worksheet, newWs as Excel.Worksheet Dim countryName as String, allBrands as String, brandArray() as String Dim rowNumber as long, nextRow as long, i as long rowNumber = 2 : nextRow = 2 

 countryName = originalWs.Cells(rowNumber,1) allBrands = originalWs.Cells(rowNumber,2) brandArray = Split(Replace(allBrands,"(" & countryName & ")",""),",") 

 For i = lbound(brandArray) to ubound(brandArray) nextRow = nextRow+1 With newWs .Cells(nextRow,1) = countryName .Cells(nextRow,2) = allBrands .Cells(nextRow,3) = originalWs.Cells(rowNumber,3) .Cells(nextRow,4) = originalWs.Cells(rowNumber,4) .Cells(nextRow,5) = brandArray(i) End With Next i 

关键是你必须维护单独的计数器:

  • 原始工作表中的行
  • 该行被插入到新的工作表中
  • arrays中的品牌

祝你好运!