vba добавляет два набора данных в зависимости от условия? - PullRequest
0 голосов
/ 09 мая 2020

У меня есть две таблицы в моем наборе данных, и я хочу создать третью таблицу (результат) из двух таблиц: таблица 1 и таблица 2. Вы можете увидеть мои таблицы снизу: введите здесь описание изображения

как вы можете из изображения выше. основная задача заключается в следующем:

  1. Мне нужно написать al oop, который проходит через таблицу 1 (col_1) и таблицу 2 (col_1) и проверяет, равны ли значения. если это так, он добавляет столбцы col_1, col_2, col_3 из таблицы и только col_3 из таблицы 2 в таблицу результатов. код, который я написал, работает для этих разделов
  2. , если они не равны, он должен добавить строки из таблицы 1 и таблицы 2 в таблицу результатов с нашим дублированием. пример можно увидеть в таблице выше. это сложная часть, потому что код, который я написал, потерпел неудачу

вот код, который я написал:

   r = r + 1
    For i = 2 To EndRowSummary
        If Not IsEmpty(shD3.Range("F" & i).Value) Then
            If shD3.Range("A" & i).Value = shD3.Range("E" & i).Value Then
                shD3.Range("A" & i, "B" & i).Copy shReport.Range("A" & r, "B" & r).Offset(1, 0)
                shD3.Range("C" & i).Copy shReport.Range("C" & r).Offset(1, 0)
                shD3.Range("G" & i).Copy shReport.Range("D" & r).Offset(1, 0)
                MsgBox r
            ElseIf shD3.Range("A" & i).Value < shD3.Range("E" & i).Value Then
'                shReport.Range("A" & r).Value = r
'                shD3.Range("A" & i, "B" & i).Copy shReport.Range("A" & r, "B" & r).Offset(1, 0)
            End If
            r = r + 1
        End If
    Next i

1 Ответ

0 голосов
/ 10 мая 2020

Решение Get & Transform: в Office 2016+ используйте панель инструментов. данные-> новый запрос-> объединить запросы-> добавить.

Если ваши таблицы не отображаются в списке, сначала используйте тот же раздел получения и преобразования вкладки данных для загрузки данных из таблиц Excel в ваш только модель данных (не на лист).

Вам нужно будет обновить sh запрос, если он устареет, нажав правой кнопкой мыши-> refre sh в таблице, но это можно автоматизировать с vba.

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