Предложение кода VBA для циклического прохождения 2 диапазонов и автозаполнения другого листа - PullRequest
0 голосов
/ 01 июля 2019

Я изо всех сил пытаюсь даже визуализировать, какой код 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 Ответ

1 голос
/ 01 июля 2019
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...