Пожалуйста, мне нужна ваша поддержка, чтобы выбрать определенные столбцы в соответствии со значением последней строки с помощью VBA

Чтобы вставить только это выделение

Поскольку я работаю над проектом, и только то, что я могу сделать, это выбрать все существующие данные в последнюю строку и скопировать их в обычном режиме, но есть некоторые столбцы, которые я не хочу их выбирать

Любая помощь, пожалуйста! Этот код выбирает все данные Imported1ws.Range ("A2: C" и Imported1LastRow). Место назначения копирования

Но на самом деле, например, мне нужно скопировать только A2: в последнюю строку, C2: в последнюю строку, F в последнюю строку также, как я могу вставить этот выбор в свое место назначения

1
Mostafa Nabil 12 Фев 2021 в 06:01

1 ответ

Лучший ответ

Копировать несмежные столбцы

  • Application.Intersect
  • Range.Copy
  • Отрегулируйте "A:A,C:C,F:F", "Sheet1", "A" (исходный столбец последней строки), "2:" (исходный первый столбец), "Sheet2", "A2" ( первая ячейка назначения).

Распространенный сценарий

Option Explicit

Sub copyNonAdjacentColumns()
    ' Constants
    Const sCols As String = "A:A,C:C,F:F"
    ' Workbook
    Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
    ' Source
    Dim sws As Worksheet: Set sws = wb.Worksheets("Sheet1")
    Dim sLastRow As Long
    sLastRow = sws.Range("A" & sws.Rows.Count).End(xlUp).Row
    Dim srg As Range
    Set srg = Intersect(sws.Range(sCols), sws.Rows("2:" & sLastRow))
    ' Destination
    Dim dws As Worksheet: Set dws = wb.Worksheets("Sheet2")
    Dim dCell As Range: Set dCell = dws.Range("A2")
    ' Copy
    srg.Copy dCell ' A,C,F to A,B,C
End Sub
2
VBasic2008 12 Фев 2021 в 04:30