Репликация ячеек с добавлением порядкового номера на основе переменной

ищу помощь в Excel с процессом репликации. Предпочел бы делать по формуле, но я уверен, что это должен быть VBA. На листе 1 у меня две колонки; A имеет разные имена, B имеет число от 1 до 15. Мне нужно создать столбец на листе 2 с именем в столбце листа 1. A повторяет количество раз, указанное в столбце B листа 1. Кроме того, мне нужно добавьте количество репликаций к значению, создаваемому на листе 2.

В качестве примера Лист 1

column A, column B
sam, 3
susan, 2

лист 2 столбец a будет выглядеть

sam1
sam2
sam3
susan1
susan2

Долго рылся в сети и никак не мог найти правильную комбинацию кода. Любая помощь будет оценена.


person Scott    schedule 17.08.2016    source источник


Ответы (1)


Непроверено, но должно делать то, что вы хотите:

Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim row1 As Long
Dim row2 As Long
Dim iter As Long
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
row1 = 1
row2 = 1
Do While ws1.Cells(row1, 1).Value <> ""
    For iter = 1 to ws1.Cells(row1, 2).Value
        ws2.Cells(row2, 1).Value = ws1.Cells(row1, 1).Value & iter
        row2 = row2 + 1
    Next
    row1 = row1 + 1
Loop 
person YowE3K    schedule 17.08.2016
comment
Спасибо - делает именно так, как нужно, поэтому я чувствую себя идиотом, задающим этот вопрос. Я все еще искал решение формулы и наткнулся на это. =ЕСЛИОШИБКА(ИНДЕКС(Лист1!D:D,ЕСЛИ(MOD(СТРОКА(A12),12)=0,,ОКРУГЛВВЕРХ(СТРОКА(A12)/12,0)),1),) В принципе, заполните это и он анализируется аналогичным образом. Это работает, за исключением того, что счетчик фиксируется на заданном значении в формуле. Я не верю, что это возможно, но можно ли его изменить для чтения указанного значения, такого как VBA? Еще раз спасибо за VBA, и я буду использовать его, если не найду формулу. Скотт - person Scott; 18.08.2016
comment
Я могу придумать способ, которым я мог бы сделать это, просто используя формулы Excel, но это заняло бы несколько столбцов и было бы некрасиво. Я бы сам не стал использовать такой метод, если бы это не была единственная часть процесса, требующая VBA. - person YowE3K; 18.08.2016
comment
Я согласен, и это моя проблема. Документ представляет собой множество вкладок с различными vlookup, реплицирующими данные для различных групп. Этот набор - единственный, требующий сценария. Беспокойство заключается в том, что кто-то обновит одну из других основных таблиц и не запустит сценарий для завершения обновления этой вкладки. То, что вы предоставили, отлично работает, и я ценю помощь. Очень хотелось бы удалить один шаг ручного обновления, если это возможно. - person Scott; 18.08.2016