0

我有一行由两列组成,这一行的每个单元格可能包含多个单词。对于同一行的每个单元格中的每个单词组合,我必须获得一个新行。我举一个简单的例子:

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

获得这个的简单宏是什么?

4

2 回答 2

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
于 2013-07-24T16:50:07.490 回答
0

假设W1在 A1 中,并且每对单词的结果将在两个单元格中,这可以在没有 VBA 的情况下实现,例如 Row1 中的公式:

=INDIRECT("A"&1+INT((ROW()-1)/2))   

=INDIRECT("B"&1+MOD(ROW()-1,2))  

两者都复制下来以适应。

于 2015-03-17T18:38:18.873 回答