Ссылка на столбец VBA из диапазона ячеек - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть очень простой вопрос относительно атрибутов строки и столбца измерения ячейки.

Для контекста - у меня есть три листа, один из которых является мастер-листом.Я копирую данные из каждой из двух таблиц данных в мастер, основываясь на заголовках столбцов.Не все заголовки столбцов на главной вкладке отображаются в таблицах данных.Я написал следующий код, который просматривает первый лист данных (ws2) и вставляет столбцы данных в соответствующие столбцы основного листа.

Sub master_sheet_data()

'Variables
Dim ws1_xlRange As Range
Dim ws1_xlCell As Range
Dim ws1 As Worksheet

Dim ws2_xlRange As Range
Dim ws2_xlCell As Range
Dim ws2 As Worksheet

Dim ws3_xlRange As Range
Dim ws3_xlCell As Range
Dim ws3 As Worksheet

Dim valueToFind As String
Dim lastrow As String

'Assign variables to specific worksheets/ranges
'These will need to be updated if changes are made to the file.
Set ws1 = ActiveWorkbook.Worksheets("Refined event data - all")
Set ws1_xlRange = ws1.Range("A1:BJ1")

Set ws2 = Worksheets("Refined event data")
Set ws2_xlRange = ws2.Range("A1:BJ1")

Set ws3 = Worksheets("Refined ID data")
Set ws3_xlRange = ws3.Range("A1:BJ1")

'Loop through all the column headers in the all data tab
For Each ws1_xlCell In ws1_xlRange
    valueToFind = ws1_xlCell.Value
        'Loop for - Refined event data tab
        'check whether column headers match. If so, paste column from event tab to relevant column in all data tab
        For Each ws2_xlCell In ws2_xlRange
            If ws2_xlCell.Value = valueToFind Then
                ws2_xlCell.EntireColumn.Copy
                ws1_xlCell.PasteSpecial xlPasteValuesAndNumberFormats
            End If
        Next ws2_xlCell
        'Loop for - Refined MASH data tab
        'check whether column headers match. If so, paste column from MASH tab to relevant column in all data tab
        'ensure data is pasted below data from previous loop and only pulling data with '0' in col O, 'N' in col Q in MASH tab
         For Each ws3_xlCell In ws3_xlRange
            If ws3_xlCell.Value = valueToFind Then
                ws3_xlCell.End(xlUp).Copy
                lastrow = ws1.Cells(rows.Count,"..." ).End(xlUp).Row + 1
                Range("..." & lastRow).Select    
                Selection.PasteSpecial xlPasteValuesAndNumberFormats
            End If
        Next ws3_xlCell


Next ws1_xlCell

End Sub

Проблема возникает при циклическом просмотре второго листа данных.(WS3).Мне нужно, чтобы эти столбцы были вставлены в следующую пустую строку соответствующих столбцов на мастер-листе.Я планировал использовать измерение lastrow для вычисления этого, но для его определения требуется ссылка на строку / столбец.К сожалению, столбец ("...") связан с измерением ws1_xlCell, которое перемещается по мере обработки цикла.

Есть ли способ извлечь ссылку на столбец из ячейки, определенной как измерение?

Cheers, Ant

1 Ответ

0 голосов
/ 20 декабря 2018

Благодаря @SJR - полная строка кода:

lastrow = ws1.Cells(Rows.Count, ws1_xlCell.Column).End(xlUp).Row + 1
                    Range(ws1_xlCell.Column & lastrow).Select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...