Объединение 2 листов и копирование всех строк листа 1 несколько раз - PullRequest
0 голосов
/ 19 марта 2019

Заранее спасибо.Если есть кто-то, кто знает все это, я был бы очень рад ;-) И это не обязательно должно быть в VBA, также приветствуется решение в формулах Excel.

IЯ пытаюсь сделать следующее: Существует лист с 6000+ названиями компаний.Другой лист показывает типы задач, которые могут быть подписаны для каждой отдельной компании.Я хочу создать новый рабочий лист с n-разным названием каждой компании и после последнего столбца в каждой строке одной из задач.

Рабочий лист1:

CompanyA | AdressA |CityA

CompanyB | АдресB | CityB

Рабочий лист2:

Задача 1 | Объяснение1 | Продолжительность1

Задача2 | Объяснение2 | Продолжительность2

Новый рабочий лист3 для создания:

CompanyA | AdressA | CityA | Task1 | Объяснение1 | Продолжительность1

CompanyA | AdressA | CityA | Task2 | Объяснение2 | Duration2

CompanyB | АдресB | CityB | Task1 | Объяснение1 | Продолжительность1

CompanyB | АдресB | CityB | Задача2 | Объяснение2 | Продолжительность2

Мой способ , начиная с , равенскопировав строки листа 1 n раз, и я нашел более старую ветку, которая могла бы быть полезной. Здесь я нашел кое-что о копировании 1 строки несколько раз

Я немного его сделал (моя версия excel - голландская, поэтому "sheet" - "blad").К сожалению, это не работает и выдает ошибку.

    Sub DuplicateRows()

Dim currentRow As Integer
Dim currentNewSheetRow As Integer: currentNewSheetRow = 1

For currentRow = 1 To 5 'The last row of your data

    Dim timesToDuplicate As Integer
    timesToDuplicate = CInt(Blad1.Range("O" & currentRow).Value2) ' Error line

    Dim i As Integer
    For i = 1 To timesToDuplicate

        Blad3.Range("A" & currentNewSheetRow).Value2 = Blad1.Range("A" & currentRow).Value2
        Blad3.Range("B" & currentNewSheetRow).Value2 = Blad1.Range("B" & currentRow).Value2
        Blad3.Range("C" & currentNewSheetRow).Value2 = Blad1.Range("C" & currentRow).Value2

        currentNewSheetRow = currentNewSheetRow + 1

    Next i

Next currentRow

End Sub

Ошибка появляется в этой строке (ошибка 13 Несоответствие типов):

timesToDuplicate = CInt(Blad1.Range("O" & currentRow).Value2)

1 Ответ

0 голосов
/ 19 марта 2019

@ Ошибка1004: вот изображения для листов.

enter image description here enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...