Копировать / вставить данные ячейки из выбранных ячеек в строке - PullRequest
1 голос
/ 30 мая 2019

Моя работа требует, чтобы я копировал / вставлял данные из нескольких ячеек подряд из одного листа Excel в определенные ячейки другого листа Excel.

Я создал макрос, но он выбирает только определенные ячейки.выбранный при записи макроса - эти ячейки всегда будут меняться в зависимости от того, из какой строки мне нужны данные, поэтому записанный макрос бесполезен.Кроме того, место, где эта информация будет вставлена ​​на другой лист, всегда будет отличаться (макрос копирует те же точные данные, которые были выбраны при записи, и вставляет их в то же самое точное место, которое было выбрано для вставки при записи).Я новичок в VBA, поэтому я не уверен, как это сделать.

Я в основном хочу указать конкретную строку для начала копирования данных и всегда выбирать те же ячейки в этой конкретной строке, кака также вставьте данные в определенные ячейки в любой строке, которую я выбрал на листе назначения.Может кто-нибудь помочь?Это для моей работы - любая помощь будет оценена.В идеале я хотел бы, чтобы макрос перемещался по определенным нужным ячейкам и копировал эту информацию из любой строки, в которой начинаются макросы, а затем вставлял эти данные в ячейки, выбранные с помощью табуляции в любой строке, выбранной в другой рабочей таблице ввремя запуска макроса, если это имеет смысл.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Вы можете сделать что-то вроде этого (не проверено):

Sub CopyOver()

    Dim rwSrc As Long, rwDest As Long
    Dim shtSrc As Worksheet, shtDest As Worksheet
    Dim p, arr

    'assume macro is run with the source workbook active
    Set shtSrc = ActiveSheet
    rwSrc = Selection(1).Row  '(1) = first selected cell only

    'switch to the "other" workbook and get the selection
    Workbooks("Joey's May FY19 Audit.xlsx").Activate
    Set shtDest = ActiveSheet
    rwDest = Selection(1).Row

    'Example [source:destination] pairs ColA>>ColB, B>>C, F>>H, etc
    For Each p In Array("A:B", "B:C", "F:H")
        arr = Split(p, ":")
        shtSrc.Cells(rwSrc, arr(0)).Copy shtDest.Cells(rwDest, arr(1))
    Next p

End Sub
0 голосов
/ 30 мая 2019

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

Sub Test2()

    'Define variables

    Dim wkCopy As Workbook
    Dim wkDest As Workbook

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet

    ' Change names as required
    Set wsCopy = Workbooks("Joey's May FY19 Audit.xlsm").Worksheets("Sheet1")
    Set wsDest = Workbooks("Master Files - May.xlsm").Worksheets("Sheet1")

    ' Copy a range from the source sheet and paste in the destination one
    wsCopy.Range("A1:A10").Copy wsDest.Range("B11")

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