我需要一些想法,如何复制符合条件的行。
我有这样的数据:
A B C D
1 Country Brand Model Year
2 France Peugeot, Citroen (France) Car 2003
3 Germany VW, Opel, BMW (Germany) Car 2003
...
目标是每个带有其参数的汽车品牌都将位于单独的行/我想做的是将 #2 行复制到表的底部,并将 #3 行复制到表的底部 2 次。还要创建显示品牌的列F
。
结果应如下所示:
A B C D F
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
...
另外,我在单独的工作表中有品牌列表。
我应该尝试搜索,
还是尝试从单独的工作表中匹配列表中的这些品牌?
我是vba
新手,所以任何想法和建议将不胜感激!
如果 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
。
关键是您必须为以下各项维护单独的计数器:
- 原始工作表中的行
- 要插入到新工作表中的行
- 阵列中的品牌
祝你好运!