Копировать столбцы в Excel на основе заголовка - PullRequest
0 голосов
/ 18 марта 2019

Я хочу скопировать столбец с одного листа («Данные1») на другой лист («Вычислить»). Затем я хочу скопировать другой столбец из другого листа («Data2»), если заголовок этого столбца совпадает со столбцом из листа «Data1», и вставить его в лист «Calc», второй столбец.

Я хотел бы поместить это в цикл, чтобы он копировал все столбцы на листе "Data1" и соответствующие столбцы на листе "Data2" на лист "Calc".

Лист данных1 выглядит примерно так:

Data1

Таблица данных2 выглядит следующим образом:

Data2

И я бы хотел, чтобы таблица Calc выглядела примерно так:

Calc

Я довольно новичок в VBA, поэтому любая помощь приветствуется.

1 Ответ

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

Это очистит таблицу Calc, затем проверит количество столбцов в Data1 и скопирует столбцы из Data1 и Data2, только если они совпадают.

Sub UpdateCalcSheet()

    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim ws3 As Worksheet

    Dim NumCols As Long
    Dim t As Long
    Dim i As Long

    Set ws1 = Sheets("Data1")
    Set ws2 = Sheets("Data2")
    Set ws3 = Sheets("Calc")

    ws3.Cells.ClearContents

    NumCols = ws1.Cells(1, Columns.Count).End(xlToLeft).Column
    t = 1

    For i = 1 To NumCols
        Set IsCol = ws2.Rows(1).Find(ws1.Cells(1, i))
        If Not IsCol Is Nothing Then
            ws1.Columns(i).Copy ws3.Columns(t)
            t = t + 1
            ws2.Columns(ws2.Rows(1).Find(ws1.Cells(1, i)).Column).Copy ws3.Columns(t)
            t = t + 1
        End If
    Next i

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