VBA: объединить 2 столбца в 1 с помощью ListObjects - PullRequest
0 голосов
/ 18 октября 2019

У меня есть 2 таблицы:

table1 (продажи сторонних производителей) table2 (Изменение продаж)

У меня есть сводная таблица:

table4 (третье лицо и изменение продаж)

Я хочу объединить все столбцы из table1 и table2 в table4.

Я использую ListObject, потому что порядок столбца может измениться, и сейчас я не делаю заранее номер строки. Это извлечено из системы.

Я пытался использовать смещение, но я получаю значения # N / A.

Sub Macro1()
'
' Macro1 Macro
'
'
Dim Sht1 As Worksheet
Dim Rng1 As Range
Dim tb1 As ListObject
'Definition of the differents tables
    Set Sht1 = Sheets("Sheet1")
    Set Rng1 = Range("Table1")
    Set tb1 = Rng1.ListObject

    Set Sht2 = Sheets("Sheet1")
    Set Rng2 = Range("Table2")
    Set tb2 = Rng2.ListObject

    Set Sht3 = Sheets("Sheet1")
    Set Rng3 = Range("Table4")
    Set tb3 = Rng3.ListObject

    'resizing the table3 to consolidate data from table 1 and table 2
    tb3.Resize tb3.Range.Resize(tb1.ListRows.Count + tb2.ListRows.Count + 1)

'Consolidating the column Period from Table 1 and Table 2 into Table 3
    tb3.ListColumns("Period").DataBodyRange.Value = tb1.ListColumns("Period").DataBodyRange.Value ' works well
    tb3.ListColumns("Period").DataBodyRange.Value = tb2.ListColumns("Period").DataBodyRange.Value ' return N/A value
'Consolidating the column Profit Ctr from Table 1 and Table 2 into Table 3
    tb3.ListColumns("Profit Ctr").DataBodyRange.Value = tb1.ListColumns("Profit Ctr").DataBodyRange.Value
    tb3.ListColumns("Profit Ctr").DataBodyRange.Value = tb2.ListColumns("Profit Ctr").DataBodyRange.Value
'Consolidating the column Partner PC from Table 1 and Table 2 into Table 3
    tb3.ListColumns("Partner PC").DataBodyRange.Value = tb1.ListColumns("Partner PC").DataBodyRange.Value
    tb3.ListColumns("Partner PC").DataBodyRange.Value = tb2.ListColumns("Partner PC").DataBodyRange.Value
End Sub

Я ожидал, что у меня будет следующее:

table1-A table1-B table1-C table2-A table2-B table2-C

У меня есть: table1-А таблица1-В таблица1-C N / AN / AN / A

...