在excel中如何为另一列中的每一行重复列

时间:2015-06-16 05:52:08

标签: excel vba excel-vba

在excel中,表1中有城市名称, 以及第2页的人名。

例如

City

Achalpur
Achhnera
Adalaj
Adilabad

person name

Name
A
B
C
D

我想在下面的表3中找到结果

city 1 person 1
city 1 person 2
till last person
city 2 person 1
city 2 person 2

Achalpur    A
Achalpur    B
Achalpur    C
Achalpur    D
Achalpur    E
Achalpur    F
Achalpur    G

1 个答案:

答案 0 :(得分:1)

这是一个可以为你做的功能。如果您可以确定城市列表或第二个列表中的条目之间不会有空行,则可以稍微修改它。

它还假设您的数据位于Sheet1和Sheet2中,并带有标题行。

要修改的一件小事,你可能只需要在每次循环结束时将s3RCtr设置为5,否则你的结果中会有5个空行的间隙。

我希望这会有所帮助。对不起,我急需查看atm。

Function DoStuff()

Dim s1ECtr, s1RCtr
Dim s2ECtr, s2RCtr
Dim s3RCtr

s1ECtr = 1
s2ECtr = 1

s1RCtr = 2
s3RCtr = 2

Do While s1ECtr < 5
    If (Sheet1.Cells(s1RCtr, 1) <> "") Then
        s2RCtr = 2
        Do While s2ECtr < 5
            If (Sheet2.Cells(s2RCtr, 1) <> "") Then
                Sheet3.Cells(s3RCtr, 1) = Sheet1.Cells(s1RCtr, 1) & " " & Sheet2.Cells(s2RCtr, 1)
            Else
                s2ECtr = s2ECtr + 1
            End If
            s3RCtr = s3RCtr + 1
            s2RCtr = s2RCtr + 1
        Loop
        s2ECtr = 0
    Else
        s1ECtr = s1ECtr + 1
    End If
    s1RCtr = s1RCtr + 1
Loop
End Function