Как реплицировать диапазон индекса для 4 отдельных элементов данных - PullRequest
0 голосов
/ 02 мая 2018

Я использую индекс для циклического прохождения непустых записей в другом листе и извлекаю 2 значения, которые работают нормально. Теперь мне нужно продублировать эти строки, чтобы каждая строка появлялась 4 раза с 3-м столбцом, содержащим 4 названия компаний (Company1, Commpany2, Company3 и Company4). Поэтому мы получаем в 4 раза больше записей в качестве исходного листа, который должен выглядеть следующим образом:

enter image description here

Мой текущий код:

Sub Address_Raw()
    Dim dataBook As Workbook
    Dim Address_Raw As Worksheet, Del_Tax As Worksheet
    Dim dataSource As Range, dataDest As Range
    Dim sourceDataRowCount As Integer, index As Integer

    Set dataBook = Application.ThisWorkbook
    Set sheetSource = dataBook.Sheets("Address_Raw")
    Set sheetDest = dataBook.Sheets("Del_Tax")

    Set dataSource = sheetSource.Range("B4", _
                    sheetSource.Range("B90000").End(xlUp))
    sourceDataRowCount = dataSource.Rows.Count

    Set dataDest = sheetDest.Range("B13", "B" & _
                                sourceDataRowCount)

    For index = 1 To sourceDataRowCount
      dataDest(index, 1).Value = dataSource(index, 1).Value
      dataDest(index, 2).Value = dataSource(index, 2).Value

    Next index

End Sub

1 Ответ

0 голосов
/ 02 мая 2018

Вам нужно будет добавить внутренний цикл в цикл for. Примерно так (не проверено):

destIndex = 1
For index = 1 To sourceDataRowCount
   For j = 1 to 4
     dataDest(destIndex, 1).Value = dataSource(index, 1).Value
     dataDest(destIndex, 2).Value = dataSource(index, j + 1).Value
     destIndex = destIndex + 1
   Next j
Next index
...