VBA代码建议用于遍历2个范围并自动填充另一个工作表

时间:2019-07-01 13:09:40

标签: excel vba

我甚至想不敢想像什么样的VBA代码就可以满足此要求,就跟Google一起吧。

我需要为一系列不同服务器上的多个拥有团队创建名称不同的用户。我的数据包括分配给每个团队的工作表,用户名列表和服务器列表。

我需要做的是获取用户名范围和服务器名称范围,并将它们合并到扩展列表中。

所以这;

Username1   Server1
Username2   Server2
Username3   Server3
Username4   Server4
Username5   Server5
Username6   Server6
Username7   Server7
Username8   Server8
Username9   Server9

成为这个;

Username1   Server1 Username1   Server2
Username2   Server1 Username2   Server2
Username3   Server1 Username3   Server2
Username4   Server1 Username4   Server2
Username5   Server1 Username5   Server2
Username6   Server1 Username6   Server2
Username7   Server1 Username7   Server2
Username8   Server1 Username8   Server2
Username9   Server1 Username9   Server2

我最初的想法是在服务器范围内进行一次FOR-EACH循环,将每个值复制到我的主表中,然后遍历该服务器列出的用户名,但很快在Google中迷失了方向。任何帮助或建议,将不胜感激。

1 个答案:

答案 0 :(得分:1)

Sub ExpandData()
Dim Source1 As Range
Set Source1 = Worksheets(1).Range("a1") 'first username
Dim Source2 As Range
Set Source2 = Worksheets(1).Range("B1") 'first server
Dim target As Range
Set target = Worksheets(2).Range("a1")
Dim x As Long
Dim y As Long
For x = Source1.Row To Source1.End(xlDown).Row
    For y = Source2.Row To Source2.End(xlDown).Row
       target.Offset(y, (x * 2) - 1) = Source1.Offset(x - 1, 0)
       target.Offset(y, (x * 2)) = Source2.Offset(y - 1, 0)
    Next y
Next x
End Sub