我有一行由两列组成,该行的每个单元格可能包含多个单词。对于同一行的每个单元格中的每个单词组合,我必须获得一个新行。我举一个简单的例子:
Column1 Column2
W1 W2
W3 W4
W5
从这个ROW1我们必须以这种方式获得3 * 2 = 6个新行:
W1 W2 -->NEWROW1 W1 W4 -->NEWROW2 W3 W2 -->NEWROW3 W3 W4 -->NEWROW4 W5 W2 -->NEWROW5 W5 W4 -->NEWROW6
获得此功能的简单宏是什么?
答案 0 :(得分:0)
可能有更优雅的方式,但尝试这样的事情:
Sub mySub()
Dim iRow as Long
Dim iRow2 as Long
Dim iOutput as long
For iRow = 1 to Cells(1,1).End(xlDown).Row
For iRow2 = 1 to cells(1,2).End(xlDown).Row
iOutput = iOutput + 1
Cells(iOutput,3) = Cells(iRow,1)
Cells(iOutput,4) = Cells(iRow2,2)
Next iRow2
Next iRow
End Sub
答案 1 :(得分:0)
假设W1
在A1中并且每对单词的结果都在两个单元格中,这可以在没有VBA的情况下实现,例如Row1中的公式:
=INDIRECT("A"&1+INT((ROW()-1)/2))
和
=INDIRECT("B"&1+MOD(ROW()-1,2))
两者都抄下来以适应。